/* KT AX Squad Atlas — 16888 (v18). 시각 정본 squad_atlas_v18.html CSS 1:1 이식.
   변경 2건: 임베드 base64 폰트 → self-host woff2 @font-face · jsdelivr @import 제거(CSP font-src 'self'). 그 외 px·색·규칙 원본 그대로. */
@font-face{font-family:'KT flow';font-weight:300;font-style:normal;font-display:swap;src:url('../fonts/KTFlow-Thin.woff2') format('woff2')}
@font-face{font-family:'KT flow';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/KTFlow-Medium.woff2') format('woff2')}
@font-face{font-family:'KT flow';font-weight:700;font-style:normal;font-display:swap;src:url('../fonts/KTFlow-Bold.woff2') format('woff2')}
@font-face{font-family:'KT flow';font-weight:800;font-style:normal;font-display:swap;src:url('../fonts/KTFlow-Black.woff2') format('woff2')}
@font-face{font-family:'Pretendard Variable';font-weight:45 920;font-style:normal;font-display:swap;src:url('../fonts/PretendardVariable.woff2') format('woff2-variations')}

:root{
  --container:1520px; --sec:132px; --seam:80px; --card-pad:32px; --radius:0px;
  /* 기본 본문/UI = Pretendard(2026-07-26 사장님) · KT flow는 디스플레이 제목(--font-title)에만 */
  --font:'Pretendard Variable',Pretendard,-apple-system,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --font-title:'KT flow','Pretendard Variable',Pretendard,-apple-system,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,'Cascadia Mono',Consolas,'Malgun Gothic',monospace;
  --ink:#101010; --ink-soft:#333333; --ink2:#444a52; --bg:#ffffff; --panel:#f5f5f5;
  --line:#e5e5e8; --line2:#2a3560; --muted:#666666; --muted2:#6b7280;
  /* v22 A2 정본: --red = 본문 강조 레드(#e0263a). 나브·푸터·카드 구조는 개별 var(--navy) 오버라이드로 네이비 유지.
     KT 로고만 리터럴 #EC193A. (v21-final 전역 네이비 flip → v22 레드 토큰으로 원복) */
  /* 전체 네이비톤 통일(레드 제거·KT 로고만 #EC193A). --red/--ac/--teal 전부 네이비 별칭. */
  --red:#18296e; --red-deep:#101f52; --red-soft:#eef1f8; --demo:#18296e; --amber:#9d4f00;
  --brand-red:#e0263a;   /* 실제 브랜드 레드(CTA 색) — ★--red 토큰은 네이비라 포커스/강조는 이걸로(2026-07-27 피드백 §6) */
  --navy:#18296e; --navy-deep:#0b1440; --panel2:#fafafa;
  /* ── 상태 색 체계 (2026-07-26 사장님 확정) · 6종 시맨틱 · 어디서나 같은 상태=같은 색 ──
     idle 미착수/중립 · active 진행중/처리중 · hold 대기/보류 · warn 주의/지연 · ok 완료/성공 · stop 중단/반려
     결정: 완료·본사업 전환·종료 전부 ok(그린) 통일 / 신규 접수=레드 카운트(상태색 아님·별개) */
  /* 상태 색 — 배경 채도↑·텍스트 진하게(2026-07-26 사장님 "대비 약함") · AA 유지 */
  --s-idle-bg:#e0e4ea;  --s-idle-tx:#49515d;  --s-idle-dot:#8a919d;
  --s-active-bg:#d4e0fb; --s-active-tx:#213377; --s-active-dot:#3350b5;
  --s-hold-bg:#ded4f2;   --s-hold-tx:#463b73;   --s-hold-dot:#7d73b0;
  --s-warn-bg:#fbe3bf;   --s-warn-tx:#764c00;   --s-warn-dot:#cf8a1a;
  --s-ok-bg:#cfead9;     --s-ok-tx:#155b39;     --s-ok-dot:#2f9463;
  --s-stop-bg:#f8d6d6;   --s-stop-tx:#8f2d33;   --s-stop-dot:#c25054;
  --s-new:#e0263a;  /* 신규 접수 알림 카운트(상태 배지 아님) */
  /* ── SA22 §A · 디자인 시스템 v1 Phase 1 토대 (2026-07-28) — 신규 토큰만 추가(중복 회피) ── */
  /* 섹션 리듬 (신규 · P1 적용 = 이중 패딩 2곳: --sec-y 96, --sec-y-tight 56) */
  --sec-y:96px; --sec-y-tight:56px;
  /* radius 스케일 (신규 역할별 · 현행 리터럴 12종 → 소비자 이관은 P2) */
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-pill:999px; --r-card:16px;
  /* 타입 스케일 9단 폐쇄집합 (SA24 §F·P6 · 값=실 렌더 정본: hero 60·페이지제목 34·섹션 26) */
  --t-display:60px; --t-h1:34px; --t-h2:26px; --t-h3:20px;
  --t-body-lg:18px; --t-body:16px; --t-body-sm:14px; --t-caption:13px; --t-micro:12px;
  /* explore 회색 캔버스 (신규 · §C) */
  --surface-2:#eef1f6;
  /* ※ 중복 회피: 간격 --sp-*(L2378·미사용)·잉크 --ink-2/3(L2376)·카드선 --d-cardline·
     네이비 별칭 --navy/--red/--teal/--ac(모두 #18296e)·레드 --cta/--brand-red(#e0263a) 이미 존재.
     이름 충돌 토큰 재정의 안 함(§A "수렴" 취지·resolved 값 기준). 소비자 이관·리터럴 수렴은 P2. */
}
/* 단일 시맨틱 상태 클래스 세트 — 모든 탭의 상태 배지가 이 6종으로 수렴 */
.st{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;line-height:1.3}
.st::before{content:"";width:6px;height:6px;border-radius:50%;flex:0 0 auto}
.st.is-idle{background:var(--s-idle-bg);color:var(--s-idle-tx)}.st.is-idle::before{background:var(--s-idle-dot)}
.st.is-active{background:var(--s-active-bg);color:var(--s-active-tx)}.st.is-active::before{background:var(--s-active-dot)}
.st.is-hold{background:var(--s-hold-bg);color:var(--s-hold-tx)}.st.is-hold::before{background:var(--s-hold-dot)}
.st.is-warn{background:var(--s-warn-bg);color:var(--s-warn-tx)}.st.is-warn::before{background:var(--s-warn-dot)}
.st.is-ok{background:var(--s-ok-bg);color:var(--s-ok-tx)}.st.is-ok::before{background:var(--s-ok-dot)}
.st.is-stop{background:var(--s-stop-bg);color:var(--s-stop-tx)}.st.is-stop::before{background:var(--s-stop-dot)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);background:var(--bg);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--container);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--font-title);letter-spacing:-.5px;line-height:1.28;font-weight:700}   /* 디스플레이 제목 = KT flow 유지 */
a{color:inherit;text-decoration:none}
.kicker{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
/* ── 버튼 사이즈 시스템 (2026-07-25 사장님 스펙) ──
   6단: Tiny/Xsmall/Small/Medium(기본)/Large/Xlarge · 텍스트 = Pretendard Medium(500)
   공통: 텍스트 최소영역 54px(글자 짧아도 중앙 · 패딩은 그 바깥으로) · radius 8 · 폰트 14(Tiny 12 · Xlarge 15)
   높이 = 텍스트 + 위아래 패딩(min-height 총값) · 양옆 = 최소영역 밖 좌우 패딩 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;
  font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-weight:500;
  border:0;border-radius:8px;cursor:pointer;white-space:nowrap;transition:.18s;line-height:1;
  min-width:78px;min-height:36px;padding:7px 12px;font-size:14px}   /* 기본 = Medium */
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-deep)}
.btn-line{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn-line:hover{background:var(--ink);color:#fff}
.btn-line.on-dark{color:#fff;border-color:rgba(255,255,255,.55)}.btn-line.on-dark:hover{background:#fff;color:var(--ink)}
.btn-tiny{min-width:70px;min-height:24px;padding:3px 8px;font-size:12px}    /* 양옆8 위아래3 · 총24 · 폰트12 */
.btn-xs  {min-width:70px;min-height:28px;padding:3px 8px;font-size:14px}    /* Xsmall — 총28 · 양옆8 · 위아래3 (사장님 확정) */
.btn-sm  {min-width:78px;min-height:32px;padding:5px 12px;font-size:14px}   /* Small — 총32 · 양옆12 · 위아래5 (사장님 확정) */
.btn-lg  {min-width:86px;min-height:40px;padding:9px 16px;font-size:14px}   /* 양옆16 위아래9 · 총40 */
.btn-xl  {min-width:94px;min-height:48px;padding:12px 20px;font-size:15px}  /* Xlarge — 총48 · 양옆20 · 폰트15 (사장님 확정) */
.logo{display:inline-flex;align-items:center;gap:10px}
/* 신규 통합 로고(kt마크+Squad Atlas 단일 SVG · 246×42) — 다크 배경=화이트, 밝은 배경=블랙 */
.logo .sa-logo{height:28px;width:auto;display:block;flex:none}
.nav .sa-ci-dark{display:none}
.nav.dark .sa-ci-dark{display:block}
.nav.dark .sa-ci-light{display:none}
.logo .wm{font-size:19px;font-weight:700;letter-spacing:-.5px}.logo .wm b{color:var(--red)}
.nav.dark .logo .wm{color:#fff}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:.3s}
.nav.dark{background:#0a0e1c;border-bottom-color:rgba(255,255,255,.08)}
/* 공통헤더 그림자 제거(2026-07-26 사장님) — 하단 헤어라인만으로 구분 */
.nav-in{max-width:var(--container);margin:0 auto;padding:0 24px;height:76px;display:flex;align-items:center;justify-content:space-between}.nav-util{border-bottom:1px solid var(--line)}.nav.dark .nav-util{border-bottom-color:rgba(255,255,255,.09)}.nav-util-in{max-width:var(--container);margin:0 auto;padding:0 24px;height:33px;display:flex;align-items:center;justify-content:flex-end;gap:20px}.nav-util-in a{font-size:12px;color:var(--muted);cursor:pointer;text-decoration:none}.nav-util-in a:hover{color:var(--red)}.nav.dark .nav-util-in a{color:rgba(255,255,255,.6)}.nav.dark .nav-util-in a:hover{color:#fff}.nav-ico{background:none;border:0;cursor:pointer;color:var(--ink2);padding:7px;line-height:0;display:flex;border-radius:8px}.nav-ico:hover{color:var(--red)}.nav.dark .nav-ico{color:rgba(255,255,255,.82)}@media(max-width:500px){.nav-util-in{display:none}}
.nav-links{display:flex;flex-wrap:nowrap;align-items:center;gap:32px;font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:16px;font-weight:700}
.nav-links a,.nav .wm,.nav-user,.nav-user button,.nav-cta,.nav-login,.nav-util-in a{white-space:nowrap}   /* 나브 텍스트 단어 중간 깨짐 방지 */
.nav-links a{display:inline-flex;align-items:center;line-height:1;color:var(--ink2);transition:.15s;cursor:pointer}.nav-links a:hover,.nav-links a.active{color:var(--red)}
.nav.dark .nav-links a{color:rgba(255,255,255,.82)}.nav.dark .nav-links a:hover,.nav.dark .nav-links a.active{color:#fff}
.nav-right{display:flex;align-items:center;gap:14px}
.toggle{display:flex;border:1px solid var(--line)}.nav.dark .toggle{border-color:rgba(255,255,255,.25)}
.toggle button{padding:8px 14px;font-size:13px;font-weight:600;background:transparent;border:0;cursor:pointer;color:var(--muted);font-family:var(--font)}
.nav.dark .toggle button{color:rgba(255,255,255,.7)}.toggle button.active{background:var(--red);color:#fff}
.hero{position:sticky;top:0;margin-top:-77px;box-sizing:border-box;padding-top:77px;background:var(--navy);color:#fff;overflow:hidden;isolation:isolate;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;z-index:0}   /* 나브(77) 밑으로 당겨 0~100vh 채움(핀 시 튐 제거) + padding-top으로 콘텐츠 가시영역 정중앙 */
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(130% 90% at 88% 4%,rgba(42,62,122,.5),transparent 42%),radial-gradient(80% 90% at 78% 120%,rgba(42,62,122,.34),transparent 46%),linear-gradient(180deg,#1c2b52,#22315c)}
.hero::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-58%;height:150%;border-radius:50%;z-index:-1;box-shadow:0 -1px 0 1.5px rgba(255,255,255,.14),0 0 160px 20px rgba(42,62,122,.22);background:radial-gradient(60% 80% at 82% 20%,rgba(42,62,122,.16),transparent 60%)}
.hero-in{max-width:var(--container);margin:0 auto;padding:120px 24px;text-align:center;opacity:calc(1 - var(--sp,0)*.5);transition:opacity .1s linear}   /* 스크롤에 따라 히어로 recede — 다음 섹션이 헤더 밑으로 도킹 */
/* ── 스티키 리빌 — 히어로(100vh)가 핀 고정되고, 다음 콘텐츠가 그 위로 부드럽게 덮으며 올라옴 ── */
.portal-flow{position:relative;z-index:1;background:var(--bg)}   /* 불투명 래퍼 → 스티키 히어로를 덮으며 스크롤 */
.hero .hpill{display:inline-block;font-size:13px;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,.25);padding:7px 16px;border-radius:var(--r-pill);margin-bottom:26px}
.hero h1{font-size:60px;line-height:1.2;font-weight:700;letter-spacing:-1.5px;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance} /* P1-1: 첫 문장 고아 음절('로' 단독 줄) 금지 */
.hero h1 .ac{color:#fff;-webkit-text-fill-color:#fff}
.hero .sub{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:20px;line-height:30px;font-weight:500;color:#cececf;margin:22px auto 0;max-width:680px}
.hero .cta{display:flex;gap:12px;justify-content:center;margin-top:38px}
.hero .hchips{display:flex;justify-content:center;margin-top:44px;padding-top:0;flex-wrap:wrap}   /* 상단 디바이더 제거 */
.hero .hchip{padding:6px 20px;min-width:150px;text-align:center;box-sizing:border-box}   /* 균등폭 3열 — 값 폭(9·4–6주·8)이 달라도 중앙 정렬 유지 · 디바이더 제거 */
.hero .hchip b{font-size:34px;font-weight:500;letter-spacing:-1px;display:block;color:#fff}   /* medium 굵기 */
.hero .hchip span{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:13px;color:#aab2c2;margin-top:4px;display:block}
@media(max-width:500px){.hero .hchips{display:none}}   /* 모바일(≤500)에선 통계 3칸 생략 (사장님) */
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(24,41,110,.55)}70%{box-shadow:0 0 0 8px rgba(24,41,110,0)}100%{box-shadow:0 0 0 0 rgba(24,41,110,0)}}
section.band{padding:var(--sec) 0}.band.panel{background:var(--panel);padding-top:164px;padding-bottom:150px}.band.navy{background:var(--navy);color:#fff}   /* SA30: 레이아웃 구조 16888 복원(헤딩 상단밀착 해소) */
@media(max-width:768px){.band.panel{padding-top:100px}}   /* SA30: 16888 복원 */
.sec-head{text-align:center;max-width:820px;margin:0 auto 56px}
/* ── 고객사례 섹션 헤더(ncloud식): 헤드라인 좌 + [고객사례보기][‹][›] 컨트롤 그룹 우 ── */
.cs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 32px;margin-bottom:60px;flex-wrap:wrap;text-align:left}   /* 텍스트↔카드 60px (사장님) */
.cs-head h2{font-size:36px;font-weight:700;letter-spacing:-1px;line-height:1.32;margin:0;text-align:left}
.cs-head h2 .ac{color:#7c828c}
.cs-ctrl{display:flex;align-items:center;gap:10px;flex:none}
/* 컨트롤 그룹 화살표 = 인라인 원형(캐러셀 사이드 절대배치 해제) */
.cs-ctrl .car-arrow{position:static;transform:none;top:auto;left:auto;right:auto;width:46px;height:46px;box-shadow:none}
.cs-ctrl .car-arrow:hover{transform:none;box-shadow:none}
/* 고객 사례 보기 = 깔끔한 pill 텍스트 버튼(아이콘 없음) · hover 시 네이비 채움 */
.cs-ctrl .ncta{border-radius:999px;height:46px;min-height:46px;padding:0 26px;background:var(--navy);color:#fff;border:1px solid var(--navy)}   /* 필드 남색 pill — 특이도 .cs-ctrl로 line297 .btn{radius:8px} 이김 */
.cs-ctrl .ncta:hover{background:#101d54;color:#fff;border-color:#101d54;transform:none}
.sec-head h2{font-size:36px;font-weight:700;letter-spacing:-1px;line-height:1.32;word-break:keep-all}   /* SA22 감사 P17: 국문·외래어 음절 중간 분절 방지(공백서만 줄바꿈) */
.sec-head h2 .ac{color:#8fa2c8}
.sec-head p{font-size:18px;color:var(--muted);margin-top:16px}.band.navy .sec-head p{color:#aab2c2}
.center-btn{text-align:center;margin-top:52px}
.carousel{position:relative;margin-top:8px}
.car-track-wrap{overflow:hidden}.car-track{display:flex;transition:transform .55s cubic-bezier(.22,.8,.24,1)}
.slide{min-width:100%}
.slide-card{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);min-height:404px;color:var(--ink)}
.slide-img{position:relative;background:linear-gradient(140deg,#3a4f86,#7a2b46);overflow:hidden}
.slide-img svg{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.slide-img .cust{position:absolute;top:26px;left:30px;z-index:2;font-size:23px;font-weight:800;color:#fff;letter-spacing:-.6px;text-shadow:0 2px 14px rgba(0,0,0,.28)}
.slide-img .stag{position:absolute;top:62px;left:30px;z-index:2;font-size:12px;font-weight:600;color:rgba(255,255,255,.9)}
.slide-img .slive{position:absolute;top:26px;right:26px;z-index:2;display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;font-size:12px;font-weight:700;padding:5px 11px}
.slide-img .slive .dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:pulse 1.6s infinite}
.slide-body{padding:48px;display:flex;flex-direction:column;justify-content:center}
.slide-body h3{font-size:23px;font-weight:700;letter-spacing:-.5px;line-height:1.44;color:var(--ink)}
.slide-stats{display:flex;gap:56px;margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}
.slide-stats .st .k{font-size:13px;color:var(--muted);font-weight:600}
.slide-stats .st .v{font-size:40px;font-weight:800;letter-spacing:-1.5px;color:var(--navy);margin-top:8px;line-height:1}
.slide-stats .st .v .u{font-size:16px;color:var(--ink2);margin-left:2px}
.car-arrow{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:1px solid #e0e0e3;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:4;font-size:26px;color:var(--ink);transition:.18s;line-height:0;box-shadow:0 8px 24px rgba(16,24,64,.14)}
.car-arrow:hover{border-color:var(--red);color:var(--red);box-shadow:0 10px 30px rgba(24,41,110,.2);transform:translateY(-50%) scale(1.06)}.car-arrow.prev{left:-27px}.car-arrow.next{right:-27px}
.car-dots{display:flex;gap:8px;justify-content:center;margin-top:38px}   /* 카드↔도트 38px (사장님) */
.car-dots button{width:9px;height:9px;border:0;background:#d2d2d5;cursor:pointer;padding:0;transition:.2s;border-radius:var(--r-sm)}.car-dots button.on{background:var(--navy);width:30px}
.numgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.numcard{background:#fff;border:1px solid var(--line);padding:34px;display:flex;gap:22px;align-items:flex-start}
.numcard .n{font-family:var(--mono);font-size:26px;font-weight:800;color:var(--navy);line-height:1}
.numcard h3{font-size:21px;font-weight:700}.numcard p{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:15px;color:var(--muted);margin-top:8px;line-height:1.6}
.teamgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px} /* W0: 1fr=min-content 바닥 → nowrap 카피가 1024/390 가로 오버플로 유발 교정 */
.teamcard{background:var(--panel);border:1px solid var(--line);padding:32px;display:flex;flex-direction:column}
.teamcard .role{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}
.teamcard h3{font-size:20px;font-weight:700;margin:12px 0 6px}.teamcard p{font-size:14px;color:var(--muted);line-height:1.6}
.teamcard .cnt{font-size:30px;font-weight:800;color:var(--ink);letter-spacing:-1px;margin-top:auto;padding-top:14px}
/* 현직 전문가 = 좌측 정렬 헤딩 + 우측 3단 세로 얇은 카드 (사장님) */
.team-split{display:grid;grid-template-columns:minmax(0,4.4fr) minmax(0,7fr);gap:48px 76px;align-items:start}
.team-head{text-align:left;max-width:none;margin:0}
.team-head h2{text-align:left}
.team-head p{text-align:left;font-size:16px;margin-top:18px}
.team-split .teamgrid{grid-template-columns:1fr;gap:18px}
.team-split .teamcard{flex-direction:row;align-items:center;justify-content:space-between;gap:28px;padding:30px 36px}
.team-split .teamcard .tc-txt{min-width:0}
.team-split .teamcard h3{font-size:19px;margin:8px 0 6px;letter-spacing:-.3px}
.team-split .teamcard p{font-size:15px;white-space:normal;overflow:visible;text-overflow:clip;letter-spacing:0}
.team-split .teamcard .cnt{margin-top:0;padding-top:0;flex:none;text-align:right;font-size:26px}
.team-split .teamcard .cnt.cnt-t{font-size:19px;white-space:nowrap}
@media(max-width:900px){.team-split{grid-template-columns:1fr;gap:28px}}
.prodgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.prodcard{background:#2a3a68;border:1px solid rgba(255,255,255,.16);padding:32px;color:#fff}
.prodcard .ico{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);color:#fff;font-size:20px;margin-bottom:20px}
.prodcard h3{font-size:22px;font-weight:700;color:#fff}.prodcard p{font-size:14px;color:#aab2c2;margin-top:10px;line-height:1.6}
.tcard{background:#fff;border:1px solid var(--line);padding:36px;min-height:210px;display:flex;flex-direction:column;justify-content:space-between}
.tcard p{font-size:16px;color:var(--ink2);line-height:1.7}.tcard .who{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:14px;color:var(--muted);margin-top:22px;font-weight:600}
/* CTA 배경화(현행 ①4): 다크 유지·비지배 — 푸터(#0b1022)와 이어지는 배경 수준 밴드. 슬래브 스케일 금지 */
.cta-band{background:radial-gradient(120% 130% at 82% -12%,rgba(46,66,132,.5),transparent 55%),radial-gradient(90% 90% at 6% 120%,rgba(18,28,72,.5),transparent 60%),linear-gradient(180deg,#0a0f22 0%,#070a14 60%,#05060c 100%);color:#fff;text-align:center;padding:96px 24px 92px;position:relative;overflow:hidden;isolation:isolate}   /* SA30: 16888 복원 96/92 */
.cta-band::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 120% at 50% 0%,rgba(42,62,122,.3),transparent 60%)}
.cta-in{position:relative;z-index:1;max-width:900px;margin:0 auto}
.cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cta-band .k{font-size:15px;color:#9aa2b6}.cta-band h2{font-size:34px;font-weight:700;letter-spacing:-1px;margin:12px 0 30px}
@media(max-width:768px){.cta-band{padding:66px 22px 62px}.cta-band h2{font-size:26px}}
#explore,#apply,#workspace{display:none}
.subhero{background:var(--panel);border-bottom:1px solid var(--line);padding:56px 0}
.subhero h2{font-size:34px;font-weight:700;letter-spacing:-1px;word-break:keep-all}.subhero p{font-size:16px;color:var(--muted);margin-top:12px}   /* SA22 감사 P17: keep-all */
/* 프로그램 히어로 = 회색→화이트 그라데이션 밴드(subhero+인트로), 라디우스·라인 제거·자연 fade (사장님) */
.prog-hero-band{background:linear-gradient(180deg,#e7ebf5 0%,#edf1f9 26%,#f6f8fc 66%,#ffffff 100%)}   /* 푸른끼(네이비 틴트) → 화이트 자연 fade */
.prog-hero-band .subhero{background:transparent;border:0;border-radius:0;padding:104px 0 30px}   /* 히어로 상단 시원하게(58→104) */
.prog-intro-wrap{padding-bottom:40px}   /* 스텝퍼와 간격 축소(82→40) */
.prog-hero-band+.band{padding-top:26px}   /* 흰 스텝퍼 섹션 상단 축소(52→26) */
.prog-hero-band+.band .pg-stepper{margin-top:0}   /* 스텝퍼 자체 margin-top(48) 제거 — 히어로와 간격 축소 */
.chatbar{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.chatbar input{flex:1;min-width:280px;height:52px;border:1px solid var(--line);padding:0 18px;font-family:var(--font);font-size:15px;background:#fff}
.qbtn{padding:9px 16px;font-size:13px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink2)}.qbtn:hover{border-color:var(--red);color:var(--red)}
.exp-body{padding:40px 0 90px}
.filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.chip{padding:9px 16px;font-size:14px;font-weight:600;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink2)}.chip:hover{border-color:var(--red);color:var(--red)}.chip.active{background:var(--red);color:#fff;border-color:var(--red)}
.grid{display:grid;gap:20px}.g3{grid-template-columns:repeat(3,minmax(0,1fr))} /* 3차: 1fr=min-content 바닥 → 열 폭 불균일(381/413/335) 교정 */
.case-card{background:#fff;border:1px solid var(--line);padding:0;overflow:hidden;transition:.2s;cursor:pointer}
.case-card:hover{border-color:var(--ink);transform:translateY(-2px)}
/* 카드 미디어(썸네일 or 생성 아트) — 모든 사례 카드 상단 비주얼(2026-07-26 사장님) */
.cc-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--panel);border-bottom:1px solid var(--line)}
.cc-media img,.cc-media svg{width:100%;height:100%;display:block}
.cc-thumb{object-fit:cover}
.cc-demo{position:absolute;top:10px;left:10px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:8px;background:rgba(16,24,64,.82);color:#fff;backdrop-filter:blur(2px)}
.cc-body{padding:16px 20px 18px}
.cc-body .top{margin-bottom:9px}
.cc-body .cust{font-size:13px}
.case-card .cc-body .case-agent{min-height:0;font-size:16px;margin:2px 0 0;-webkit-line-clamp:2}   /* 2줄 존 고정 해제(미디어 카드는 그리드가 정렬) → 스크롤 압박 완화 */
.case-card .cc-body h3{margin:6px 0 0;min-height:0;font-size:15px;font-weight:600;line-height:1.45;color:var(--muted)}   /* 헤드라인 = 보조(에이전트명이 주) */
.case-card .cc-body .eff{margin-top:10px}
/* explore 레이아웃 = 16888 원복(2026-07-27 사장님 — 좁아짐 지적, #explore 블록/타이포 변경 제거) */
/* 태그 행 = 왼쪽 묶음(번호·섹터) + 오른쪽(데모 체험) — 3태그 시 균등분산으로 섹터가 부유하던 배치 깨짐 수정 */
.case-card .top{display:flex;justify-content:flex-start;align-items:flex-start;gap:6px}
/* 얼라인 수리: 태그 좌측 고정(구 last-child auto 마진 = 데모 배지 전제 — 배지 토글화 후 섹터 필이 우측으로 밀리던 원인) */
.tag{font-size:12px;font-weight:600;padding:3px 9px;background:var(--panel);color:var(--ink2)}
.tag.sector{background:var(--red-soft);color:var(--red-deep)}
.tag.live{background:var(--navy);color:#fff;display:inline-flex;gap:5px;align-items:center}.tag.live .dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:pulse 1.6s infinite}
.case-card h3{font-size:18px;font-weight:700;margin:14px 0 8px;line-height:1.45}
.case-card .cust{font-size:14px;color:var(--muted)}.case-card .eff{font-size:14px;font-weight:600;margin-top:14px;color:var(--red-deep)}
.case-card .foot{display:flex;justify-content:space-between;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.form-wrap{max-width:760px;margin:0 auto;padding:48px 0 90px}
.frow{margin-bottom:22px}.frow label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}.frow label .req{color:var(--navy)}
.frow input,.frow select,.frow textarea{width:100%;border:1px solid var(--line);padding:13px 14px;font-family:var(--font);font-size:15px;background:#fff}
.frow textarea{min-height:96px;resize:vertical}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-actions{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}.form-note{font-size:13px;color:var(--muted);margin-top:16px}
/* 운영 워크스페이스 = 앱 셸(좌측 사이드바) — 공통헤더 유지 + 좌 레일 + 콘텐츠 컨텍스트 바(2026-07-26 사장님) */
.ws-shell{display:flex;align-items:flex-start;min-height:calc(100vh - 77px);max-width:1520px;margin:0 auto}   /* 공통 폭 정합(2026-07-26) — 나브(ws-wide 1400)와 좌측선·전체폭 정렬 */
.nav.ws-wide .nav-in{max-width:1520px}   /* 워크스페이스 진입 시 나브 콘텐츠폭 = 워크스페이스폭(마케팅은 1240 유지) */
/* 좌측 사이드바(sticky·전체 높이) */
.ws-side{position:sticky;top:77px;flex:0 0 232px;width:232px;align-self:flex-start;height:calc(100vh - 77px);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:0;overflow-y:auto;z-index:30}
.ws-side-brand{display:none;align-items:center;gap:10px;height:54px;flex:0 0 54px;padding:0 18px;border-bottom:1px solid var(--line)}   /* 3존 정리: 데스크톱 숨김(순수 내비) · 모바일 드로어 제목으로만 노출(2026-07-26 사장님) */
.ws-side-brand .ws-ident-ico{color:var(--navy);display:inline-flex;flex:0 0 auto}
.ws-side-brand .ws-ident-nm{font-family:var(--font);font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-nav{display:flex;flex-direction:column;gap:2px;padding:14px 12px}
.ws-nav button{display:flex;align-items:center;gap:11px;padding:11px 12px;border:0;border-radius:8px;background:none;cursor:pointer;font-family:var(--font);font-size:14px;font-weight:600;color:var(--muted);text-align:left;width:100%;transition:background .14s,color .14s}
.ws-nav button .ni{display:inline-flex;color:var(--muted2);flex:0 0 auto}
.ws-nav button:hover{background:var(--panel);color:var(--navy)}.ws-nav button:hover .ni{color:var(--navy)}
.ws-nav button.active{background:var(--red-soft);color:var(--navy);font-weight:700}   /* 선택 = 필값만(좌측 액센트 바 제거·radius 8) */
.ws-nav button.active .ni{color:var(--navy)}
.ws-side-foot{margin-top:auto;padding:0 12px 16px}
/* 메인 영역 */
.ws-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.ws-ctxbar{position:sticky;top:77px;z-index:46;display:flex;align-items:center;gap:14px;padding:0 32px;height:54px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}   /* z:46 = 사이드바(30)·콘텐츠 위 — 알림 패널이 밑에 깔리던 문제 해소(backdrop-filter 스태킹 컨텍스트) */
/* 컨텍스트바 브레드크럼(2026-07-26) — 섹션(루트·링크) › 현재(굵게) */
.ws-ctx-title{display:flex;align-items:center;gap:7px;white-space:nowrap;min-width:0}
.ws-crumb-root{background:none;border:0;cursor:pointer;font-family:var(--font);font-size:16px;font-weight:600;color:var(--muted);padding:0;flex:0 0 auto}
.ws-crumb-root:hover{color:var(--red)}
.ws-crumb-sep{color:var(--muted2);font-size:15px;font-weight:400;flex:0 0 auto}
.ws-crumb-cur{font-family:var(--font);font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.ws-ctx-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.ws-drawer-btn{display:none;background:none;border:0;color:var(--navy);cursor:pointer;padding:6px;border-radius:8px}   /* ▣ 운영 워크스페이스 아이콘(공통 나브 ☰ 버거와 구분·2026-07-26) */
.ws-drawer-btn:hover{color:var(--navy);background:var(--panel)}
.ws-hd-sep{width:1px;height:18px;background:var(--line);flex:0 0 auto}
.ws-aux{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}
/* 범위 토글 = 알약형 세그먼트(Medium 36·2026-07-26) — 두 뷰 선택·활성 알약이 슬라이딩(::before 썸이 좌우 이동) */
.ws-ctxbar .ws-role{position:relative;display:inline-flex;align-items:center;height:36px;padding:3px;background:var(--panel);border:1px solid var(--line);border-radius:999px}
.ws-role{border-radius:999px}
/* 슬라이딩 썸 — 활성 세그먼트 배경(네이비 알약). :has로 pm 활성 시 우측으로 부드럽게 이동 */
.ws-ctxbar .ws-role::before{content:"";position:absolute;top:3px;left:3px;width:calc(50% - 3px);height:28px;background:var(--navy);border-radius:999px;box-shadow:0 1px 3px rgba(24,41,110,.25);transition:transform .28s cubic-bezier(.32,.72,0,1);z-index:0}
.ws-ctxbar .ws-role:has(button[data-r="pm"].active)::before{transform:translateX(100%)}
.ws-role button{position:relative;z-index:1;flex:1 1 0;min-width:82px;display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 12px;font-size:13px;font-weight:700;background:none;border:0;cursor:pointer;color:var(--muted);font-family:var(--font);white-space:nowrap;transition:color .22s}   /* min-width 균등 = 슬라이딩 썸 50% 정렬 */
.ws-role button:hover{color:var(--navy)}
.ws-ctxbar .ws-role button.active{color:#fff;background:none}   /* 배경 없음 = 둥근 ::before 썸만 노출(옛 .active{background:navy} 사각 오버라이드 무효화) */
.ws-role button.active:hover{color:#fff}
@media (prefers-reduced-motion:reduce){.ws-ctxbar .ws-role::before{transition:none}}
.ws-body{padding:28px 32px 90px}
.ws-body-in{max-width:1520px}
.ws-scrim{position:fixed;inset:0;background:rgba(10,14,28,.42);z-index:55}
/* ── 로딩 가드 스켈레톤(2026-07-26) — /ws 딥링크 새로고침 시 홈 페인트 차단·인증 확인 동안 표시 ── */
.ws-skel{display:none}
html.boot-ws #portal{display:none!important}
/* 부팅 중 나브 = 워크스페이스 라이트·1400폭(정적 HTML의 dark 오버라이드 — 인라인 JS 없이) */
html.boot-ws .nav-in{max-width:1520px}
html.boot-ws .nav.dark{background:rgba(255,255,255,.94);border-bottom-color:var(--line)}
html.boot-ws .nav.dark .sa-ci-dark{display:none}
html.boot-ws .nav.dark .sa-ci-light{display:block}
html.boot-ws .nav.dark .nav-links a{color:var(--ink2)}
html.boot-ws .nav.dark .nav-links a.active{color:var(--red)}
html.boot-ws .ws-skel{display:flex;max-width:1520px;margin:0 auto;align-items:flex-start;min-height:calc(100vh - 77px)}
.sk{background:linear-gradient(90deg,#eef0f4 25%,#e6e9f0 37%,#eef0f4 63%);background-size:400% 100%;animation:skShim 1.4s ease infinite;border-radius:8px;display:block}
@keyframes skShim{0%{background-position:100% 50%}100%{background-position:0 50%}}
.ws-skel-side{flex:0 0 232px;height:calc(100vh - 77px);position:sticky;top:77px;background:#fff;border-right:1px solid var(--line)}
.ws-skel-side .sk-brand{height:18px;width:118px;margin:18px}
.ws-skel-nav{display:flex;flex-direction:column;gap:8px;padding:8px 12px}
.ws-skel-nav .sk{height:38px}
.ws-skel-main{flex:1 1 auto;min-width:0}
.ws-skel-ctx{height:54px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px}
.ws-skel-ctx .sk-crumb{width:130px;height:16px}
.ws-skel-ctx .sk-ctl{width:220px;height:34px;border-radius:999px}
.ws-skel-body{padding:28px 32px}
.ws-skel-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.ws-skel-cards .sk{height:96px;border-radius:12px}
.ws-skel-body .sk-block{height:150px;border-radius:12px}
@media(prefers-reduced-motion:reduce){.sk{animation:none;background:#eef0f4}}
@media(max-width:900px){
  html.boot-ws .ws-skel{display:block}
  .ws-skel-side{display:none}
  .ws-skel-ctx{padding:0 18px}.ws-skel-ctx .sk-ctl{width:150px}
  .ws-skel-body{padding:20px 18px}.ws-skel-cards{grid-template-columns:repeat(2,1fr)}
}
/* 모바일(≤768) — 사이드바 = 햄버거 오버레이 드로어 */
@media(max-width:900px){   /* 워크스페이스 드로어 = 900 티어(공통 나브 로그인 버거 900과 통일 — 769~900 인라인/버거 미스매치 해소) */
  .ws-drawer-btn{display:inline-flex}
  .ws-side-brand{display:flex}   /* 모바일 드로어 = 브랜드를 제목으로 노출(데스크톱은 숨김) */
  .ws-side{position:fixed;top:0;left:0;height:100vh;height:100dvh;transform:translateX(-100%);transition:transform .26s cubic-bezier(.2,.8,.2,1);z-index:60;box-shadow:0 0 40px rgba(10,14,28,.2)}
  .ws-shell.ws-drawer-open .ws-side{transform:none}
  .ws-ctxbar{padding:0 18px;gap:8px}
  .ws-drawer-btn{margin-left:-6px}   /* ☰ 아이콘 좌측을 콘텐츠(18px)·본문 기준선에 정렬 */
  .ws-ctxbar .ws-ctx-title{display:flex;min-width:0;overflow:hidden;margin-left:2px}   /* 모바일도 브레드크럼 유지(☰ 옆·축약) */
  .ws-ctxbar .ws-crumb-cur{font-size:15px}
  .ws-ctxbar .ws-crumb-root{font-size:14px}
  .ws-ctx-right{margin-left:auto;gap:8px}
  .ws-body{padding:20px 18px 80px}
}
.kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.kpi .c{background:#fff;padding:22px}.kpi .c .n{font-size:30px;font-weight:800;letter-spacing:-1px}.kpi .c.warn .n{color:var(--amber)}.kpi .c.live .n{color:var(--navy)}.kpi .c .l{font-size:13px;color:var(--muted);margin-top:3px}
.dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin-top:24px;align-items:start}
.panel-box{background:#fff;border:1px solid var(--line);padding:24px}.panel-box h3{font-size:15px;font-weight:700;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
.bar-row{display:grid;grid-template-columns:104px 1fr 52px;align-items:center;gap:12px;margin:11px 0;font-size:13px}.bar-row .lb{color:var(--ink2);font-weight:500;text-align:right}.bar-track{height:22px;background:var(--panel)}.bar-fill{height:100%;background:var(--navy)}.bar-row .vv{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right}
.mini{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--panel);font-size:14px}.mini:last-child{border-bottom:0}.mini .badge{font-size:11px;font-weight:700;padding:2px 8px}.mini .badge.a{background:#f3f3f4;color:var(--amber)}.mini .badge.l{background:var(--navy);color:#fff}
.pipe-filters{display:flex;gap:22px;flex-wrap:wrap;align-items:center;padding:16px 20px;background:#fff;border:1px solid var(--line);margin:24px 0 20px}
.pf-group{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pf-group .fl{font-size:12px;color:var(--muted);font-weight:700;margin-right:4px}
.pf-chip{padding:6px 12px;font-size:12px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink2)}.pf-chip:hover{border-color:var(--red)}.pf-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pipe-cols{display:grid;grid-template-columns:328px 1fr;gap:24px;align-items:start}
.pipe-list .pli{padding:14px 16px;border:1px solid var(--line);background:#fff;cursor:pointer;margin-bottom:8px;transition:.12s}.pipe-list .pli:hover{border-color:var(--ink)}.pipe-list .pli.sel{border-color:var(--red);border-left:3px solid var(--red)}
.pipe-list .pli .t{font-weight:700;font-size:14px;display:flex;align-items:center;gap:7px}.pipe-list .pli .m{font-size:12px;color:var(--muted);margin-top:4px}.pipe-list .pli .db{height:5px;background:var(--panel);margin-top:9px}.pipe-list .pli .db i{display:block;height:100%;background:var(--navy)}
.detail{border:1px solid var(--line);background:#fff}
.detail-hd{padding:22px 26px 0}.detail-hd .dc{font-size:13px;color:var(--muted)}.detail-hd h3{font-size:22px;font-weight:700;margin:6px 0 4px}.detail-hd .actions{display:flex;gap:8px;margin:16px 0 0;align-items:center}
/* 탭바 = 모달 헤더의 하단 엣지(2026-07-26 사장님 "헤더에 합치고 깔끔하게"). 헤더의 유일한 디바이더. */
.detail-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:6px 28px 0;margin-top:2px}
.detail-tabs button{padding:11px 12px;font-size:15px;font-weight:600;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;color:var(--muted);font-family:var(--font)}.detail-tabs button.active{color:var(--red);border-bottom-color:var(--red)}
.detail-body{padding:26px}
.kv{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:20px}.kv div{background:#fff;padding:14px 16px}.kv div .k{font-size:12px;color:var(--muted)}.kv div .v{font-size:15px;font-weight:700;margin-top:4px}
.del-group{margin-bottom:18px}.del-gh{font-size:14px;font-weight:700;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;justify-content:space-between}.del-gh .c{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:500}
.del-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 2px;border-bottom:1px solid var(--panel);font-size:15px}.del-row .l{display:flex;align-items:center;gap:9px;min-width:0;flex:1 1 auto;color:var(--ink2)}.del-row .dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.del-row .dot.g{background:var(--demo)}.del-row .dot.w{background:var(--amber)}.del-row .dot.e{border:2px solid #cacacc}
.del-nofile{margin-left:8px;font-size:12px;font-weight:600;color:var(--amber);flex:0 0 auto;white-space:nowrap}
.del-act{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto}   /* 우측 액션 묶음 정렬(2026-07-26) */
.del-file{font-size:15px;color:var(--navy);font-weight:600;cursor:pointer;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.del-up{font-size:14px;font-weight:600;border:1px solid var(--line);border-radius:8px;padding:0 12px;height:32px;display:inline-flex;align-items:center;cursor:pointer;color:var(--ink2);background:#fff;font-family:var(--font);white-space:nowrap}.del-up:hover{border-color:var(--navy);color:var(--navy)}
.wbs-steps{display:flex;justify-content:space-between;position:relative;margin:6px 4px 26px}.wbs-steps::before{content:"";position:absolute;top:9px;left:2%;right:2%;height:2px;background:var(--line)}.wbs-fill{position:absolute;top:9px;left:2%;height:2px;background:var(--navy);z-index:0}
.wbs-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;z-index:1}.wbs-node .d{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--line)}.wbs-node.done .d{background:var(--navy);border-color:var(--navy)}.wbs-node.cur .d{border-color:var(--navy);box-shadow:0 0 0 4px rgba(24,41,110,.14)}.wbs-node .lb{font-size:11px;color:var(--muted)}.wbs-node.cur .lb{color:var(--navy);font-weight:700}
.wbs-task{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border:1px solid var(--line);margin-bottom:6px;font-size:13px}.wbs-task .s{font-size:11px;font-weight:700;padding:3px 9px}.wbs-task .s.d{background:#ededf1;color:var(--demo)}.wbs-task .s.p{background:var(--panel);color:var(--muted)}.wbs-task .s.c{background:var(--red-soft);color:var(--red-deep)}
.txtarea{width:100%;border:1px solid var(--line-strong,#c9ccd4);border-radius:8px;padding:12px 14px;font-family:var(--font);font-size:15px;color:var(--ink);line-height:1.6;background:#fff;min-height:88px;resize:vertical;transition:border-color .12s,box-shadow .12s}
.txtarea:hover{border-color:var(--navy)}
.txtarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12)}
.field-lbl{font-size:14px;font-weight:600;color:var(--ink2);margin:16px 0 8px;display:flex;justify-content:space-between;align-items:center}
.ai-badge{font-family:var(--mono);font-size:10px;font-weight:700;background:var(--navy);color:#fff;padding:2px 6px;margin-left:6px}
.ai-mini{font-size:11px;font-weight:700;color:var(--red);border:1px solid var(--red);background:#fff;padding:4px 10px;cursor:pointer}.ai-mini:hover{background:var(--red);color:#fff}
.ai-draft{margin-top:10px;background:var(--panel);border:1px solid var(--line);padding:12px 14px}.ai-line{font-size:12px;color:var(--ink2);padding:4px 0;opacity:0;animation:fadein .35s forwards}@keyframes fadein{to{opacity:1}}
.rule{display:flex;gap:10px;font-size:14px;color:var(--ink2);padding:9px 0;border-bottom:1px solid var(--line);line-height:1.5}.rule:last-child{border-bottom:0}.rule .ok{color:var(--demo);font-weight:700}.rule .rt{margin-left:auto;color:var(--muted)}
.warnbox{background:#f3f3f4;border:1px solid #e2e2e4;padding:14px 16px;font-size:13px;color:var(--amber);margin-top:8px}
.pdesc{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:12px}
.cur{display:flex;gap:6px}.cur button{font-size:11px;font-weight:600;padding:6px 11px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--muted);font-family:var(--font)}.cur button.on{background:var(--red);color:#fff;border-color:var(--red)}.cur button:hover{border-color:var(--red)}
/* de-box(2026-07-26 사장님 "박스박스가 뭐니") — 떠 있는 카드 폐기 → 헤어라인 구분 리스트(세션 de-box 문법 정합). */
.pcards{display:flex;flex-direction:column;gap:0}
.pcard{border-bottom:1px solid var(--line);background:transparent;transition:background .12s}
.pcard:last-child{border-bottom:0}
.pcard.open{border-color:var(--line)}
.pcard-hd{display:grid;grid-template-columns:1fr 104px 148px 172px 24px;align-items:center;gap:18px;padding:16px 20px;cursor:pointer}
.pcard-hd:hover{background:var(--panel)}
.pc-t{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px}
.pc-m{font-size:12px;color:var(--muted);margin-top:4px}
.pc-stg{display:inline-flex;align-items:center;justify-content:center;justify-self:start;font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--r-pill);text-align:center;font-family:var(--font);white-space:nowrap;background:var(--s-idle-bg);color:var(--s-idle-tx)}   /* SSOT §I: 라벨칩 단일 폼(pill/12/600·상태색 --s-* 유지=D4 종료색 불변) */
.pc-stg.run{background:var(--s-active-bg);color:var(--s-active-tx)}.pc-stg.biz,.pc-stg.done{background:var(--s-ok-bg);color:var(--s-ok-tx)}   /* 진행중=active · 본사업전환/완료=ok */
.pc-prog .db{height:6px;background:var(--panel)}.pc-prog .db i{display:block;height:100%;background:var(--navy)}.pc-dl{font-size:11px;color:var(--muted);font-family:var(--font);margin-top:5px;display:block}
.pcard-body{border-top:1px solid var(--line)}.pcard-body .detail-tabs{padding:10px 20px 0}.pcard-body .detail-body{padding:22px}
/* 파이프라인 상세 = 우측 슬라이드 패널(2026-07-26 사장님) — 목록 유지·상세 편집은 패널에서 */
.pcard.sel{box-shadow:inset 3px 0 0 var(--navy)}
/* 노션식 센터 peek(2026-07-26) — 큰 중앙 모달·목록 딤·확장↗ */
/* 과제 상세 = 전폭 페이지(A안·2026-07-26 사장님) — 모달 폐기. ws-body-in(1360) 안에서 자연 스크롤. */
.pipe-page{display:flex;flex-direction:column}
.pg-head{display:flex;flex-direction:column}
.pg-back{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:4px 8px 4px 0;margin-bottom:14px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:8px}
.pg-back:hover{color:var(--navy)}
.pg-back svg{flex:0 0 auto}
.pg-topline{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}
.pg-name{font-family:var(--font);font-size:24px;font-weight:800;letter-spacing:-.015em;color:var(--ink);line-height:1.25;margin-bottom:10px}
.pg-meta{font-size:14px;color:var(--muted);margin-bottom:2px}   /* 담당자·고객 라인 14px(2026-07-26 사장님 — 상세 12/13 금지) */
/* 진행 요약(1줄+얇은 바) — 페이지에선 폭 제한(전폭 긴 바 방지). 디바이더는 아래 탭바가 담당. */
.pp-prog{display:flex;align-items:center;gap:14px}
.pipe-page .pp-prog{padding:12px 0 14px;max-width:600px}
.pipe-page .detail-tabs{padding:0;margin-top:2px}
.pg-body{padding:24px 0 40px}
.pp-pg-txt{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;display:inline-flex;align-items:center;gap:9px}
.pp-pg-txt b{font-weight:700}
.pp-pg-txt em{font-style:normal;color:var(--muted);font-weight:500}
.pp-pg-dot{width:3px;height:3px;border-radius:50%;background:var(--line);flex:0 0 auto}
.pp-pg-hold{color:var(--s-hold-tx)}
.pp-pg-ext{color:var(--s-warn-tx)}
.pp-pg-bar{flex:1;height:5px;border-radius:2px;background:var(--s-idle-bg);overflow:hidden;min-width:80px}
.pp-pg-bar>i{display:block;height:100%;border-radius:2px;background:var(--navy)}
@media(max-width:768px){.pg-name{font-size:20px}.pg-body{padding:20px 0 40px}.pipe-page .pp-prog{max-width:none}}
@media(max-width:1024px){.pcard-hd{grid-template-columns:1fr;gap:10px}}
footer{background:#000000;color:#c2c2c2;padding:80px 0 56px;min-height:420px;box-sizing:border-box;font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:14px}   /* 푸터 = 블랙·Pretendard·생화이트 미사용 (사장님) */
footer .wrap{display:flex;flex-direction:column}   /* 콘텐츠 위쪽 촘촘히 스택(빈 공간 제거) */
.ft-logo{height:24px;width:auto;display:block}   /* 로고 축소(30→24) */
.ft-tag{margin-top:9px;max-width:none;line-height:1.6;color:#a2a2a2;font-size:14px}   /* 로고와 간격 축소(18→9) */
.foot-in{display:flex;justify-content:space-between;gap:40px 30px;flex-wrap:wrap}
footer .cols{display:flex;gap:48px;flex-wrap:wrap}footer .cols div{display:flex;flex-direction:column;gap:11px}footer .cols div b{color:#e8e8e8;font-size:13px;line-height:1.3;margin:0 0 3px}footer .cols div a{color:#bdbdbd;font-size:13px;line-height:1.3;cursor:pointer}footer .cols div a:hover{color:var(--red)}   /* flex-gap+명시 line-height = 간격 결정론적 고정(margin collapse·폰트메트릭 흔들림 제거) */
.foot-legal{margin-top:44px;padding-top:26px;border-top:1px solid rgba(255,255,255,.13);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:#9a9a9a;font-size:12px}
.foot-bar{border-top:1px solid rgba(255,255,255,.14);margin-top:20px;padding-top:22px;font-size:12px;color:#8f8f8f;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.ft-copy{color:#6a6a6a}   /* 카피라이트 = 은은하되 잘 보이게(#333→#6a6a6a·사장님) */
@media(max-width:768px){footer{min-height:0;padding:64px 0 48px}footer .wrap{min-height:0}.foot-legal{padding-top:28px}}
.reveal{opacity:0;transform:translateY(34px);transition:.9s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:none}
@media(max-width:1024px){.numgrid,.teamgrid,.prodgrid,.g3,.slide-card,.kpi,.kv,.dash-grid,.pipe-cols,.fgrid{grid-template-columns:1fr}.hero h1{font-size:46px;line-height:1.18}.nav-links{gap:18px;font-size:15px}:root{--sec:108px}.car-arrow.prev{left:6px}.car-arrow.next{right:6px}.car-arrow{top:26%}} /* P3-15: 스택 레이아웃에선 화살표를 이미지 밴드로 — 카드 라벨 가림 방지 */
@media(max-width:500px){.nav-links{display:none}}

/* ===== premium motion (our way) ===== */
@keyframes aurora{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-2.5%,1.5%) scale(1.07)}100%{transform:translate(0,0) scale(1)}}
@keyframes twinkle{0%,100%{opacity:.2}50%{opacity:.85}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes dash{to{stroke-dashoffset:-80}}
@keyframes rise{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:none}}
.hero::before{animation:aurora 16s ease-in-out infinite}
.hero-particles{position:absolute;inset:0;z-index:-1;pointer-events:none;width:100%;height:100%;opacity:.5}.hero-net{position:absolute;inset:0;z-index:-1;pointer-events:none;width:100%;height:100%}
.hero-particles circle{animation:twinkle 5s ease-in-out infinite}
/* 델타 B: 히어로 첫 페인트 즉시 렌더 — 진입 숨김(opacity 0 스태거) 폐기(첫 뷰포트 리빌 숨김 0 원칙·체감 성능) */
/* ── 히어로 진입 애니메이션 (토스 참고 · 절제) ── */
/* A 스태거 페이드업 — pill·sub·cta·지표 */
.hero-parts .hpill,.hero-parts .sub,.hero-parts .cta,.hero-parts .hchips{opacity:0;animation:rise .7s cubic-bezier(.22,.8,.24,1) forwards}
.hero-parts .hpill{animation-delay:.05s}
.hero-parts .sub{animation-delay:.42s}
.hero-parts .cta{animation-delay:.54s}
.hero-parts .hchips{animation-delay:.66s}
/* D H1 라인 마스크 리빌 — 각 줄이 마스크 뒤에서 슬라이드업 */
.hero-parts h1{opacity:1}
.hero h1 .hl{display:block;overflow:hidden;padding-bottom:.03em}
.hero h1 .hl-in{display:block;transform:translateY(110%);animation:heroReveal .9s cubic-bezier(.22,.9,.24,1) forwards}
.hero h1 .hl:nth-child(1) .hl-in{animation-delay:.16s}
.hero h1 .hl:nth-child(2) .hl-in{animation-delay:.3s}
@keyframes heroReveal{to{transform:translateY(0)}}
/* B 스크롤 큐 화살표 — bounce + 스크롤 시 페이드아웃 */
.hero-scroll{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:7;background:none;border:0;padding:6px;color:rgba(255,255,255,.92);cursor:pointer;opacity:0;transition:opacity .35s,color .15s;animation:heroBounce 1.4s ease-in-out .9s infinite,heroCueIn .5s ease .9s forwards}
.hero-scroll:hover{color:#fff}
.hero.scrolled .hero-scroll{animation:none;opacity:0;pointer-events:none}
@keyframes heroBounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,11px)}}
@keyframes heroCueIn{to{opacity:1}}
/* E 버튼 hover 마이크로(블러 없이 미세 lift) */
.hero .cta .btn{transition:background .18s,color .18s,border-color .18s,transform .16s}
.hero .cta .btn:hover{transform:translateY(-2px)}
.reveal{transition:.95s cubic-bezier(.2,.85,.25,1)}
.numcard,.teamcard,.prodcard,.case-card,.tcard{transition:transform .22s ease,border-color .22s,box-shadow .22s}
.numcard:hover,.teamcard:hover,.case-card:hover,.tcard:hover{transform:translateY(-5px);border-color:var(--red);box-shadow:0 16px 44px rgba(16,24,64,.09)}
.prodcard{transition:transform .22s ease,border-color .22s,box-shadow .22s}
.prodcard:hover{transform:translateY(-5px);border-color:var(--red);box-shadow:0 16px 44px rgba(16,24,64,.2)}
.btn{transition:.18s,transform .1s,box-shadow .18s}.btn:active{transform:translateY(1px)}
/* (btn-red 호버 그림자 제거 — 블러 없이 색만) */
.flowpath{stroke-dasharray:5 7;animation:dash 3.4s linear infinite}
.numcard .n{transition:transform .22s}.numcard:hover .n{transform:scale(1.12)}
.car-dots button{transition:.25s}


/* ===== KT Enterprise 색감·구조 정렬 (v5) — enterprise.kt.com 통일 ===== */
/* 기조: 딥 네이비(#18296e) 구조 + 그레이 뉴트럴. 레드는 KT 로고 심볼(#EC193A)에만(A2). 촌스러운 다색·파스텔 제거. */
.hero{background:#0a0e1c}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 80% at 80% -8%,rgba(42,62,122,.38),transparent 56%),linear-gradient(180deg,#0b1126,#080b15)}
.cta-band::before{background:radial-gradient(70% 120% at 50% 0%,rgba(42,62,122,.3),transparent 60%)}
.btn-red{background:var(--navy)}.btn-red:hover{background:#101f52}
/* 사례 캐러셀 = 라이트 뉴트럴 + 실물형 UI 목업 (검은 박스·추상 네트워크 폐기) */
.slide-card{overflow:hidden;border-radius:16px}
.slide-img{position:relative;background:#f0f0f1;overflow:hidden}
.slide-img .cart{position:absolute;inset:0;width:100%;height:100%;opacity:1}
.slide-img .cust{top:20px;left:20px;background:#fff;border:1px solid var(--line);padding:8px 14px;font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.3px;text-shadow:none;box-shadow:0 6px 18px rgba(16,24,64,.10);border-radius:8px}
.slide-img .stag{top:auto;bottom:54px;left:20px;background:rgba(255,255,255,.92);border:1px solid var(--line);padding:5px 11px;font-size:12px;font-weight:700;color:var(--ink2);border-radius:8px}
.slide-img .sdemo{position:absolute;bottom:20px;left:20px;z-index:2;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted)}
.slide-img .sdemo::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--demo)}
.slide-body{padding:52px 48px}
.slide-body h3{font-size:24px;font-weight:700;letter-spacing:-.6px;line-height:1.44;color:var(--ink)}
.slide-stats{display:flex;gap:52px;margin-top:34px;padding-top:30px;border-top:1px solid var(--line)}
.slide-stats .st .v{color:var(--navy)}
.slide-chips{display:flex;flex-direction:column;gap:13px;margin-top:30px;padding-top:28px;border-top:1px solid var(--line)}
.slide-chips .sc{position:relative;display:flex;align-items:flex-start;gap:11px;font-size:16px;color:var(--ink-soft);font-weight:600;line-height:1.45}
.slide-chips .sc::before{content:"";flex:0 0 7px;width:7px;height:7px;margin-top:6px;background:var(--navy);border-radius:2px}
/* 카드 라운드 = KT 12px (샤프 폐기) */
.numcard,.teamcard,.tcard,.case-card,.panel-box,.prodcard{border-radius:12px}
.subhero,.chatbar input,.frow input,.frow select,.frow textarea,.txtarea{border-radius:12px}
.tag,.chip,.qbtn,.pf-chip,.btn,.ws-role,.kpi .c:first-child,.kpi .c:last-child{border-radius:8px}
/* 카드 타이틀 스케일 통일 (글자크기 들쭉날쭉 제거) */
.numcard h3,.teamcard h3,.prodcard h3{font-size:22px;letter-spacing:-.4px}
.sec-head h2{letter-spacing:-1px}
.sec-head h2 .ac{color:#7c828c}
/* 섹션 헤딩 반응형 램프 — 히어로 h1(60→46→38→30)처럼 검증/발굴 헤딩도 스케일(레이아웃만 바뀌던 문제 해소) */
@media(max-width:1024px){.cs-head h2,.sec-head h2,.subhero h2,.pain-head h2{font-size:30px;letter-spacing:-.7px}.slide-body h3{font-size:19px}}
@media(max-width:768px){.cs-head h2,.sec-head h2,.subhero h2,.pain-head h2{font-size:27px;letter-spacing:-.5px}.cs-head{margin-bottom:26px}.sec-head p,.subhero p{font-size:14px}}
@media(max-width:500px){.cs-head h2,.sec-head h2,.subhero h2,.pain-head h2{font-size:23px;line-height:1.3;letter-spacing:-.3px}.slide-body{padding:26px 22px}.slide-body h3{font-size:18px}}
/* 운영 navy 카드 = KT 네이비 통일 */
.prodcard{background:var(--navy);border-color:rgba(255,255,255,.14)}
.prodcard .ico{background:rgba(255,255,255,.12);color:#fff;border-radius:8px}
.prodcard p{color:#cacacc}
/* 성과 팩트 밴드(구 후기) */
.tcard{align-items:flex-start;background:#fff}
.tc-fig{font-size:24px;font-weight:800;color:var(--navy);letter-spacing:-.6px;line-height:1.18;margin-bottom:14px}   /* 타이틀 = KT flow(기본)·크기 축소(33→24) */
.tcard p{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:15px;color:var(--ink-soft);flex:1;line-height:1.6}
/* 산출물 체크≠파일 정직 표기 */
.del-chk{font-size:12px;color:var(--muted)}
/* 사례 그리드 카드 정렬·타이포 */
.cc-body{padding:18px 24px 20px}   /* 데스크톱 본문 여백 축소(스크롤 압박 완화·2026-07-26) */
.case-card .cc-body h3{letter-spacing:-.3px}
.case-card .eff{color:var(--navy);font-weight:700}
.case-card .tag.sector{background:var(--red-soft);color:var(--red-deep)}
/* 워크스페이스 공개범위 칩 가독 */
.pc-m{color:var(--muted)}
@media(max-width:1024px){.slide-body{padding:32px}.slide-body h3{font-size:20px}}


/* 홈 콘텐츠 관리 */
.cc-lead{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;font-size:14px;color:var(--ink-soft);margin-bottom:24px}
.cc-lead b{color:var(--ink)}
.cc-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.cc-row:first-of-type{border-top:0}
.cc-rn{font-size:14px;color:var(--muted)}.cc-rn b{color:var(--ink);font-weight:700}
.cc-edit{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.cc-edit input[type=text],.cc-edit input:not([type]){flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-family:var(--font);font-size:13px;background:#fff;color:var(--ink)}
.cc-edit .cc-fig{flex:0 0 150px;font-weight:800;color:var(--navy)}
.cc-tg{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.cc-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:8px;vertical-align:middle;margin-left:6px}
.cc-badge.var{background:var(--red-soft);color:var(--red-deep)}
.cc-badge.lock{background:#f0f0f1;color:var(--muted)}
.cc-hint{font-size:11px;font-weight:500;color:var(--muted2);margin-left:4px}
.cc-savebar{display:flex;align-items:center;gap:14px;margin-top:24px;flex-wrap:wrap}
.cc-savehint{font-size:12px;color:var(--muted);line-height:1.5}
.cc-lockrow{display:flex;gap:16px;padding:10px 0;border-top:1px dashed var(--line);opacity:.72}
.cc-lockrow:first-of-type{border-top:0}
.cc-lk{flex:0 0 150px;font-size:12px;font-weight:700;color:var(--muted)}
.cc-lv{font-size:13px;color:var(--ink2)}


/* ===== 기법 완성: 접근성 · 모션 축소 · 키보드 포커스 · 터치 히트영역 ===== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero-parts>*{opacity:1!important;transform:none!important}
  .hero-parts .hpill,.hero-parts .sub,.hero-parts .cta,.hero-parts .hchips,.hero h1 .hl-in{opacity:1!important;transform:none!important;animation:none!important}
  .hero-in{opacity:1!important}
  .hero-scroll{animation:none!important;opacity:.92!important}
  .reveal{opacity:1!important;transform:none!important}
  .hero-particles,.aurora{display:none!important}
}
:focus-visible{outline:2px solid var(--brand-red);outline-offset:2px;border-radius:2px}   /* 포커스 링 = 브랜드 레드(구: var(--red)=네이비 버그·2026-07-27 §6) */
a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}
@media (pointer:coarse){
  a,button,.chip,.pf-chip,.qbtn,.cur button,.detail-tabs button{min-height:44px}   /* .ws-role button 제외 — 알약 토글은 Medium 36 고정(coarse pointer서 44로 부풀어 컨테이너 뚫던 버그) */
  .car-dots button{min-height:0;height:9px}   /* 페이지네이션 도트는 지시형 인디케이터 — 44px 강제 제외(모바일 부풀음 방지) */
  .ws-role button{min-height:0;height:28px}   /* 알약 토글 = Medium 36 고정(일반 button 44 규칙 제외 — 컨테이너 뚫음 방지) */
  .car-dots button.on{width:26px}
  .car-arrow{width:44px;height:44px}
}

.numcard{flex-direction:column;gap:0;padding:0;align-items:stretch;overflow:hidden;border-radius:12px}
.numart-svg{display:block;width:100%;height:110px;border-bottom:1px solid var(--line);object-fit:cover}
.numinner{display:flex;gap:16px;align-items:flex-start;padding:22px 26px 24px}

.logo-head{text-align:center;font-size:14px;font-weight:600;color:var(--muted);letter-spacing:.02em;margin-bottom:38px}
.logo-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.logo-track{display:flex;gap:64px;width:max-content;animation:logoscroll 36s linear infinite}
.logo-marquee:hover .logo-track{animation-play-state:paused}
.logo-track span{white-space:nowrap;font-size:19px;font-weight:800;color:#b3b3b8;letter-spacing:-.3px;transition:color .2s}
.logo-track span:hover{color:var(--ink2)}
@keyframes logoscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}


/* ===== 임직원 로그인 ===== */
#login{display:none;background:#f5f5f5;min-height:calc(100vh - 72px)}
/* 로그인 리디자인(사장님 07-22 심야): 다크 브랜드 배경 + 프리미엄 카드 — 히어로 아이덴티티 정합 */
#login{background:#0a0e1c;position:relative;overflow:hidden;isolation:isolate}
#login::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(90% 120% at 50% -10%,rgba(42,62,122,.45),transparent 58%)}
.login-wrap{max-width:1216px;margin:0 auto;padding:0 24px;min-height:calc(100vh - 73px);display:flex;flex-direction:column;justify-content:center;align-items:center}
.login-card{background:#fff;border:0;border-radius:16px;padding:40px 36px 30px;width:100%;max-width:420px;box-shadow:0 28px 72px rgba(3,6,16,.5)}
.login-brand{display:flex;align-items:center;gap:9px;margin-bottom:24px}
.login-brand img{display:block}
.login-brand .wm{font-size:17px;font-weight:800;letter-spacing:-.3px;color:var(--ink)}
.login-title{font-size:24px;font-weight:700;letter-spacing:-.5px;margin:0 0 6px;color:var(--ink)}
.login-sub{font-size:14px;color:var(--muted);margin:0 0 26px}
.login-card label{display:block;font-size:13px;font-weight:700;color:var(--ink2);margin:0 0 7px}
.login-card input{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-family:var(--font);font-size:15px;background:#fff;margin-bottom:18px;transition:border-color .15s,box-shadow .15s}
.login-card input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12)}
.login-card .lg-remember{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink2);margin:2px 0 20px;cursor:pointer;user-select:none}
.login-card .lg-remember input{width:17px;height:17px;margin:0;flex:0 0 auto;accent-color:var(--navy);cursor:pointer}
.login-btn{width:100%;justify-content:center;margin-top:6px;height:50px;border-radius:12px;font-size:15px}
/* P3-17: 레드 = 로고·1차 CTA만 — 로그인 제출은 네이비(전역 btn-navy 정의) */
.btn.btn-navy{background:var(--navy);color:#fff}
.btn.btn-navy:hover{background:#101f52}
.login-note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.6;text-align:center;min-height:20px}
.login-back{display:inline-block;margin-top:24px;font-size:14px;color:#aab2c2;cursor:pointer}
.login-back:hover{color:#fff}
/* ── 계정 메뉴(NN/g: 이름+로그아웃 분리 → 우상단 계정 드롭다운으로 통합) ── */
.nav-acct{position:relative;display:inline-flex}
.acct-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 8px 0 6px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;transition:.15s;box-sizing:border-box}
.acct-btn:hover{background:rgba(16,24,64,.05)}
.nav.dark .acct-btn:hover{background:rgba(255,255,255,.08)}
.acct-av{width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none;line-height:1}
.acct-nm{font-size:14px;font-weight:600;color:var(--ink2);white-space:nowrap}
.nav.dark .acct-nm{color:rgba(255,255,255,.9)}
.acct-cv{font-size:10px;color:var(--muted2);transition:transform .15s}
.acct-btn[aria-expanded="true"] .acct-cv{transform:rotate(180deg)}
.nav.dark .acct-cv{color:rgba(255,255,255,.6)}
.acct-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:244px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(16,24,64,.16);padding:6px;z-index:60;animation:mmdrop .18s ease}
.acct-head{padding:10px 12px 12px}
.acct-hn{font-size:14px;font-weight:700;color:var(--ink)}
.acct-hm{font-size:12px;color:var(--muted2);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acct-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 12px;border:0;background:transparent;border-radius:8px;font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:14px;font-weight:500;color:var(--ink2);cursor:pointer;text-decoration:none;transition:.12s}
.acct-item:hover{background:var(--red-soft);color:var(--navy)}
.acct-ar{color:var(--muted2);font-weight:400}
.acct-sep{height:1px;background:var(--line);margin:4px 8px}
.acct-logout{color:var(--cta)}
.acct-logout:hover{background:#fdeef0;color:var(--cta-deep)}
@media(prefers-reduced-motion:reduce){.acct-menu{animation:none}}
/* 헤더 보조 버튼(로그인·로그아웃) 단일 규격 — 동일 크기·radius 8 (사장님: 로그인≠로그아웃 해소) */
/* 헤더 로그인·로그아웃 = 버튼 시스템 Medium(36) outline 통일 (사장님: 헤더 미디엄 적용) */
.nav-login,.nav-user button{height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;line-height:1;font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:14px;font-weight:500;color:var(--ink2);background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer;white-space:nowrap;transition:.15s;box-sizing:border-box}
.nav-login:hover,.nav-user button:hover{border-color:var(--red);color:var(--red)}
.nav.dark .nav-login,.nav.dark .nav-user button{color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.28)}
.nav.dark .nav-login:hover,.nav.dark .nav-user button:hover{color:#fff;border-color:#fff}
.foot-auth{cursor:pointer}
/* ===== 사례 상세 ===== */
#caseDetail{display:none}
.cd-top{background:#0a0e1c;color:#fff;padding:38px 0 42px}
.cd-back{display:inline-block;font-size:13px;color:#aab2c2;cursor:pointer;margin-bottom:20px}
.cd-back:hover{color:#fff}
.cd-tags{display:flex;gap:8px;margin-bottom:16px}
.cd-top h2{font-size:34px;font-weight:700;letter-spacing:-.8px;line-height:1.34;max-width:820px}
.cd-meta{font-size:15px;color:#aab2c2;margin-top:14px}
.cd-hero-vis{background:#f5f5f5;border-bottom:1px solid var(--line);padding:32px 0}
.cd-hero-vis .wrap{max-width:900px}
.cd-hero-vis .cart{width:100%;height:340px;border-radius:16px;border:1px solid var(--line);overflow:hidden}
.cd-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:40px 0 0}
.cd-tabs button{padding:15px 24px;font-family:var(--font);font-size:16px;font-weight:700;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer}
.cd-tabs button.active{color:var(--ink);border-bottom-color:var(--red)}
.cd-body{padding:40px 0 20px}
.cd-grid{display:grid;grid-template-columns:1fr 320px;gap:44px}
.cd-blk{margin-bottom:28px}
.cd-blk h4{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:10px}
.cd-blk p{font-size:16px;color:var(--ink-soft);line-height:1.75;white-space:pre-line} /* 개조식(줄바꿈) 서술 보존 — 사례 뎁스 서사 */
.cd-side{background:#f5f5f5;border-radius:12px;padding:26px}
.cd-stats{display:flex;gap:24px;margin-bottom:20px;padding-bottom:0}   /* 줌감사 P3: border-bottom 제거 — 아래 첫 메타행(고객사) border-top와 이중선 되던 것 단일화(de-box) */
.cd-stat .v{font-size:34px;font-weight:800;color:var(--navy);letter-spacing:-1.2px;line-height:1}
.cd-stat .v span{font-size:15px;color:var(--ink2);margin-left:2px}
.cd-stat .k{font-size:12px;color:var(--muted);font-weight:600;margin-top:8px}
.cd-chips{list-style:none;margin:0 0 20px;padding:0}
.cd-chips li{position:relative;padding-left:16px;font-size:14px;color:var(--ink-soft);font-weight:600;line-height:1.5;margin-bottom:10px}
.cd-chips li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;background:var(--navy);border-radius:2px}
.cd-fact{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.cd-fact span{color:var(--muted)}.cd-fact b{color:var(--ink)}
.cd-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.cd-step{flex:1;min-width:160px;background:#f5f5f5;border-radius:12px;padding:24px 20px;text-align:center}
.cd-step .n{display:inline-flex;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;align-items:center;justify-content:center;font-weight:800;font-size:15px;margin-bottom:12px}
.cd-step p{font-size:14px;color:var(--ink-soft);font-weight:600;line-height:1.5}
.cd-ar{color:var(--muted2);font-size:20px}
.cd-note{font-size:14px;color:var(--muted)}
.cd-demo{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.cd-demo-vis .cart{width:100%;height:260px;border-radius:12px;border:1px solid var(--line);overflow:hidden}
.cd-demo-tx h4{font-size:20px;font-weight:700;margin-bottom:12px}
.cd-demo-tx p{font-size:15px;color:var(--muted);line-height:1.7;margin-bottom:22px}
.cd-cta{margin:24px 0 90px;background:#0a0e1c;border-radius:16px;padding:44px;text-align:center;color:#fff}
.cd-cta h3{font-size:24px;font-weight:700;letter-spacing:-.5px;margin-bottom:22px}
@media(max-width:1024px){.cd-grid,.cd-demo{grid-template-columns:1fr}.cd-top h2{font-size:26px}}

.dash-filters{margin-bottom:24px}
.case-agent{font-size:14px;font-weight:700;color:var(--ink2);margin:2px 0 8px;letter-spacing:-.2px}

.cd-video-wrap{max-width:840px}
.cd-player{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#0a0e1c;border:1px solid var(--line)}
.cd-poster{position:absolute;inset:0}.cd-poster .cart{width:100%;height:100%}
/* 디밍은 폴백 포스터 전용 — 클릭 통과(pointer-events:none) 필수: 오버레이가 video 클릭을 삼켜 "재생 안 됨" 재현됐던 버그. 실영상(vhas)엔 디밍 자체 제거(화질·밝기 보존). */
.cd-player::after{content:"";position:absolute;inset:0;background:rgba(10,14,28,.30);pointer-events:none}
.cd-player.vhas::after{display:none}
.cd-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;width:76px;height:76px;border-radius:50%;background:rgba(24,41,110,.96);border:1px solid rgba(255,255,255,.22);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px rgba(0,0,0,.4);transition:.2s}
.cd-play:hover{transform:translate(-50%,-50%) scale(1.08)}.cd-play svg{margin-left:4px}
.cd-vbadge{position:absolute;top:16px;left:16px;z-index:3;background:rgba(255,255,255,.94);color:var(--ink);font-size:12px;font-weight:800;padding:6px 11px;border-radius:8px}
.cd-vfallback{position:absolute;inset:0;z-index:4;display:none;flex-direction:column;align-items:center;justify-content:center;background:rgba(10,14,28,.9);color:#fff;text-align:center;font-size:16px;font-weight:700;gap:8px;padding:20px}
.cd-vfallback span{font-size:13px;color:#aab2c2;font-weight:500}
.cd-player.vplaying .cd-play,.cd-player.vplaying .cd-vbadge{display:none}
.cd-player.vplaying .cd-vfallback{display:flex}
@keyframes nudgeR{0%,100%{transform:translateY(-50%)}50%{transform:translateY(-50%) translateX(5px)}}@keyframes nudgeL{0%,100%{transform:translateY(-50%)}50%{transform:translateY(-50%) translateX(-5px)}}
/* (car-arrow nudge 흔들림 제거 — ncloud식 정적 셰브론) */
.car-arrow svg{display:block}


/* ===== 과제 신청 위저드 (15888 흡수) ===== */
.apply-wrap{max-width:760px;margin:0;padding:46px 0 40px}   /* SA22 감사 P5: 중앙정렬 제거 → 헤더 좌측선(x=48)에 정합(좌측-에디토리얼 시스템 일관·자로 잰 정렬) */
.ap-steps{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.ap-step{display:inline-flex;align-items:center;gap:9px;padding:9px 18px 9px 10px;border:1px solid var(--line);border-radius:var(--r-pill);background:#fff;font-family:var(--font);font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;transition:.15s}
.ap-step .apn{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--panel);color:var(--muted);align-items:center;justify-content:center;font-size:12px}
.ap-step.active{background:var(--red);border-color:var(--red);color:#fff}
.ap-step.active .apn{background:rgba(255,255,255,.25);color:#fff}
.ap-hint{font-size:13px;color:var(--muted);margin:4px 0 32px}
.ap-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.ap-chip{padding:10px 16px;border:1px solid var(--line);border-radius:var(--r-pill);background:#fff;font-family:var(--font);font-size:14px;font-weight:600;color:var(--ink2);cursor:pointer;transition:.15s}
.ap-chip:hover{border-color:var(--navy);color:var(--navy)}
.ap-chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.ap-help{font-size:13px;color:var(--muted);margin-top:10px}
.ap-actions{display:flex;gap:10px;margin-top:34px}
.ap-ppt{margin-top:28px;padding:20px 0 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted);text-align:left}   /* SA22 감사 P14: 회색 채움박스+중앙 → de-box(무채움·좌측정렬·구분선) — 폼 흐름과 정합 */
.ap-ppt a{color:var(--navy);font-weight:700;cursor:pointer}
@media(pointer:coarse){#apply [data-act="apgo"].btn,#apply [data-act="apsubmit"].btn{min-height:44px}}   /* SA22 감사 P6: 위저드 액션버튼 터치44(.btn 기본36 override·apply 스코프·데스크탑 불변) */
.ap-done{text-align:center;padding:54px 0}
.ap-done-ic{width:64px;height:64px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.ap-done h3{font-size:24px;font-weight:700;margin-bottom:10px}
.ap-done p{color:var(--muted)}


/* ===== 프로그램 소개 페이지 ===== */
#program{display:none}
.prog-top{text-align:center}   /* 프로그램 히어로 중앙정렬 (사장님) */
.pg-intro{display:block;max-width:820px;margin:0 auto;text-align:center}   /* 중앙정렬 클린 인트로 */
.pg-intro .pg-bd{justify-content:center}
.pg-lead{font-size:19px;color:var(--ink-soft);line-height:1.7;font-weight:500}
.pg-quote{border:0;padding:4px 0;margin:26px 0;font-size:18px;font-weight:700;color:var(--ink);line-height:1.6}
.pg-stats{display:flex;gap:40px;margin-top:6px;border-top:1px solid var(--line);padding-top:26px}
.pg-stats b{font-size:34px;font-weight:800;color:var(--ink);letter-spacing:-1px;display:block}
.pg-stats span{font-size:13px;color:var(--muted);margin-top:4px;display:block}
.pg-intro-img img{width:100%;border-radius:16px;border:1px solid var(--line);display:block}
.pg-intro-img .pg-squad{width:100%;height:auto;display:block;border-radius:16px;border:1px solid var(--line);box-shadow:0 10px 40px rgba(16,24,64,.06)}
.pg-pain{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.pg-paincard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px}
.pg-paincard h3{font-size:17px;font-weight:700;color:var(--navy);margin-bottom:10px}
.pg-paincard p{font-size:14px;color:var(--muted);line-height:1.6}
.pg-bridge{text-align:center;margin-top:42px;font-size:20px;color:var(--ink-soft)}.pg-bridge b{color:var(--navy)}
/* 페인 섹션 = 좌측 '왜 어려운가 + 존재 이유' 서사 + 우측 얇은 리스크 카드 (사장님) */
.pain-split{display:grid;grid-template-columns:minmax(0,4.6fr) minmax(0,7fr);gap:44px 72px;align-items:center}   /* SA29 §M: start→center. 짧은 좌측(제목·설명)을 세로중앙 균형 → 좌하단 빈공간 제거(억지 stretch 아님) */
.pain-head .kicker{display:inline-block;margin-bottom:16px}
.pain-head h2{font-size:36px;font-weight:700;letter-spacing:-1px;line-height:1.28;margin:0;text-align:left}
.pain-head h2 .ac{color:#7c828c}
.pain-head>p{font-size:16px;color:var(--muted);line-height:1.7;margin-top:20px;max-width:440px}
.pain-solve{margin-top:30px;padding-left:18px;border-left:3px solid var(--navy)}
.pain-solve b{display:block;font-size:17px;color:var(--navy);font-weight:800;letter-spacing:-.3px;margin-bottom:7px}
.pain-solve span{font-size:14px;color:var(--ink-soft);line-height:1.65}
.pain-solve em{font-style:normal;color:var(--navy);font-weight:700}
.pain-split .pg-pain{display:flex;flex-direction:column;gap:12px}
.pain-split .pg-paincard{padding:20px 24px}
.pain-split .pg-paincard .pp-tag{margin-bottom:9px}
.pain-split .pg-paincard h3{font-size:16px;margin-bottom:6px}
.pain-split .pg-paincard p{font-size:14px}
@media(max-width:900px){.pain-split{grid-template-columns:1fr;gap:32px}.pain-head>p{max-width:none}}
.disc4{display:flex;align-items:stretch;gap:8px;margin-bottom:44px;flex-wrap:wrap}
.disc-step{flex:1;min-width:150px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 18px;text-align:center}
.disc-step .d{font-family:var(--mono);font-size:13px;font-weight:800;color:var(--navy)}
.disc-step h4{font-size:18px;font-weight:700;margin:8px 0 8px}
.disc-step p{font-size:13px;color:var(--muted);line-height:1.55}
.disc-ar{display:flex;align-items:center;color:var(--muted2);font-size:18px}
.meth-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.meth-card{background:var(--panel);border-radius:16px;padding:28px}
.meth-t{font-size:17px;font-weight:700;margin-bottom:16px}
.meth-svg{width:100%;height:auto;display:block;margin-bottom:16px;border-radius:12px}
.meth-card p{font-size:14px;color:var(--muted);line-height:1.6}
@media(max-width:1024px){.pg-intro,.meth-grid{grid-template-columns:1fr}.pg-pain{grid-template-columns:1fr 1fr}}

/* 16888 추가: 쓰기 피드백 토스트(§8 알림). */
.toast16{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#0b1022;color:#fff;font-size:14px;font-weight:600;padding:12px 20px;border-radius:8px;box-shadow:0 12px 34px rgba(11,20,64,.32);z-index:400;opacity:0;transition:.28s;max-width:88vw}
.toast16.in{opacity:1;transform:translate(-50%,0)}
/* 16888: 투입인력 편집(파이프라인 개요) · 내부 전용 */
.mem-edit{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.mem-row{display:flex;align-items:center;gap:10px}
.mem-row label{flex:0 0 66px;font-size:12px;font-weight:700;color:var(--muted)}
.mem-row input{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-family:var(--font);font-size:13px;background:#fff;color:var(--ink)}
.mem-row .sv{font-size:12px;font-weight:700;color:var(--navy);background:none;border:0;cursor:pointer;font-family:var(--font);white-space:nowrap}
/* 16888: 사례 상세 체험 — 데모 대화 + 처리 과정(v18 cd-* 톤 준수) */
.cd-demo-chat{margin-top:28px;border-top:1px solid var(--line);padding-top:28px}
.cd-chat-h{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:14px}
.cd-turn{display:flex;margin-bottom:14px}.cd-turn.user{justify-content:flex-end}
.cd-turn .b{max-width:78%;padding:13px 16px;font-size:14px;line-height:1.6;border-radius:16px;white-space:pre-line}
.cd-turn.user .b{background:var(--navy);color:#fff;border-bottom-right-radius:4px}
.cd-turn.agent .b{background:#f5f5f5;border:1px solid var(--line);color:var(--ink2);border-bottom-left-radius:4px}
.cd-proc{margin:6px 0 18px;display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.cd-proc .pl{font-size:11px;font-weight:700;color:var(--muted);font-family:var(--mono)}
.cd-proc .ps{font-size:12px;font-weight:600;color:var(--ink2);background:#f5f5f5;border:1px solid var(--line);border-radius:8px;padding:4px 9px}
.cd-proc .pa{color:var(--muted2);font-size:12px}

/* 16888: 프로그램 소개 실이미지(14888 흡수) + 히어로 데코 SVG 가로 overflow(1024) 클립 */
body{overflow-x:hidden}
/* SA35: 한글 줄바꿈 보강 — 어절 중간 미분절 + 불가피한 2줄은 균형/고아방지(폰트·구조 불변·되돌리기 1줄)
   overflow-wrap=break-word(anywhere 아님): anywhere 는 flex min-content 를 1글자로 축소해 번호칩 '01'을
   '0/1' 로 쪼개는 회귀 유발 → break-word 는 min-content 미영향·긴 토큰만 넘칠 때 분절(회귀 실측 후 확정) */
body{word-break:keep-all;overflow-wrap:break-word}
h1,h2,h3,.title{text-wrap:balance}
p,.lead,.desc{text-wrap:pretty}
/* SA35 §4: 프로그램 '발굴 판단 도구' 강조부 = 의도적 서브라인(공유 .ac 미변경·스코프 한정) */
.sec-head h2 .dd-toolsub{display:block;font-size:18px;font-weight:600;letter-spacing:-.3px;line-height:1.45;margin-top:8px}
.pg-intro-img img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line);display:block}
.pg-meth-img{margin:8px 0 0}
.pg-meth-img img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line);display:block;box-shadow:0 10px 40px rgba(16,24,64,.06)}
.pg-meth-img figcaption{text-align:center;font-size:14px;color:var(--muted);margin-top:16px;line-height:1.6}

/* ── 방법론 모듈(14888 인터랙티브 이식·16888 토큰 리토큰) — Delivery Framework/우선순위/L1~L5 ── */
#methRoot{display:flex;flex-direction:column;gap:0;font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif}   /* 방법론 = 기본 Pretendard, 타이틀·본문만 KT flow (사장님) */
#methRoot .method-block-h b,#methRoot .df-head h3,#methRoot .df-stage-t,#methRoot .df-detail-head h4,#methRoot .df-step-t,#methRoot .axis-h,#methRoot .df-stage-d,#methRoot .df-step-q,#methRoot .df-out span,#methRoot .axis-item{font-family:var(--font)}   /* 타이틀·본문 = KT flow 유지 */
#methRoot .df-wk,#methRoot .df-who,#methRoot .method-num,#methRoot .df-out b,#methRoot .df-step-n,#methRoot .df-dur{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif}   /* 크롬(라벨·번호·산출물) = Pretendard */
.method-block{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 26px;margin-bottom:20px}
.method-block-h{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.method-num{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--red-deep);background:var(--red-soft);border-radius:8px;padding:3px 8px;letter-spacing:.04em}
.method-block-h b{font-family:var(--font);font-size:17px;font-weight:700;color:var(--ink)}
.method-sub{font-size:13px;color:var(--muted)}
.dframe{display:flex;flex-direction:column;gap:18px}
.df-head{text-align:center}
.df-head h3{font-family:var(--font);font-size:22px;font-weight:700;letter-spacing:-.4px;margin:0;color:var(--ink)}
.df-head p{color:var(--muted);font-size:14px;margin:5px 0 0}
/* ═══ 프로그레스 바 스텝퍼 (사장님) ═══ */
.df-stages{display:flex;gap:0;position:relative;margin:8px 0 6px;padding-top:4px}
.df-stages::before{content:"";position:absolute;top:26px;left:12.5%;right:12.5%;height:3px;background:var(--line);border-radius:2px;z-index:0}
.df-stages::after{content:"";position:absolute;top:26px;left:12.5%;width:calc(var(--step,0) / 3 * 75%);height:3px;background:var(--navy);border-radius:2px;z-index:1;transition:width .3s cubic-bezier(.2,.8,.2,1)}
.df-node{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:9px;background:none;border:0;cursor:pointer;position:relative;z-index:2;padding:4px 4px 0;font-family:var(--font)}
.df-node-dot{width:44px;height:44px;border-radius:50%;background:#fff;border:3px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted2);transition:transform .16s,border-color .16s,background .16s,color .16s,box-shadow .16s}
.df-node-dot svg{width:22px;height:22px}
.df-node:hover .df-node-dot{border-color:var(--navy);color:var(--navy)}
.df-node.is-active .df-node-dot{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 8px 20px rgba(24,41,110,.28);transform:scale(1.06)}
.df-node-wk{font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--muted2)}
.df-node.is-active .df-node-wk{color:var(--navy)}
.df-node-t{font-size:14px;font-weight:700;color:var(--ink2);line-height:1.25;text-align:center;word-break:keep-all}
.df-node.is-active .df-node-t{color:var(--navy)}
.df-node:focus-visible{outline:none}
.df-node:focus-visible .df-node-dot{outline:3px solid rgba(24,41,110,.4);outline-offset:2px}
.df-hint{font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:12px;color:var(--navy);background:#eef1f8;border-radius:var(--r-pill);padding:3px 11px;margin-left:auto}
.df-stage{flex:1 1 0;min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:15px 15px 13px;display:flex;flex-direction:column;gap:9px;text-align:left;cursor:pointer;font-family:var(--font);transition:border-color .16s,box-shadow .16s}
.df-stage:hover{border-color:var(--red)}
.df-stage:focus-visible{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.2)}
.df-stage.is-primary{border-color:var(--red);background:linear-gradient(180deg,#fff 0%,var(--red-soft) 100%)}
.df-wk{align-self:flex-start;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--muted);background:var(--panel);border-radius:8px;padding:3px 9px}
.df-stage.is-primary .df-wk{color:var(--red-deep);background:var(--red-soft)}
.df-stage-b{display:flex;align-items:center;gap:9px}
.df-ic{width:26px;height:26px;flex:0 0 auto;color:var(--muted2)}
.df-stage.is-primary .df-ic{color:var(--navy)}
.df-stage-t{font-family:var(--font);font-size:16px;font-weight:700;color:var(--ink);line-height:1.25}
.df-stage.is-primary .df-stage-t{color:var(--red-deep)}
.df-stage-d{font-size:13px;color:var(--muted);line-height:1.5;flex:1}
.df-who{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted2);background:var(--panel);border-radius:8px;padding:6px 9px}
.df-who svg{width:13px;height:13px;flex:0 0 auto}
.df-arrow{align-self:center;color:var(--muted2);opacity:.6;flex:0 0 auto;display:flex;align-items:center}
.df-arrow svg{width:18px;height:18px}
.df-handoff{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink2);margin:10px 0 0;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 14px}
.df-parlegend{font-size:12px;color:var(--muted2);margin:16px 2px 0}.df-parlegend b{color:var(--red-deep);font-weight:700}   /* 병행 배지 범례 */
.df-handoff svg{width:15px;height:15px;flex:0 0 auto;color:var(--navy)}
.df-detail{border:1.5px dashed #c3cce4;border-radius:12px;padding:32px 26px 24px;position:relative;margin-top:4px}
.df-detail-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:12px;font-weight:700;border-radius:var(--r-pill);padding:4px 14px;white-space:nowrap}
.df-detail-head{text-align:center;margin-bottom:26px}
.df-detail-head h4{font-family:var(--font);font-size:20px;font-weight:700;margin:0;color:var(--ink)}
.df-detail-head p{color:var(--muted);font-size:13px;margin:5px 0 0}
.df-steps{display:flex;align-items:stretch;gap:16px}
.df-step{flex:1 1 0;min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px;display:flex;flex-direction:column;gap:13px}
.df-step-h{display:flex;align-items:center;gap:9px}
.df-step-n{width:24px;height:24px;flex:0 0 auto;border-radius:50%;background:var(--navy);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.df-step-t{font-family:var(--font);font-size:15px;font-weight:700;flex:1;line-height:1.2;color:var(--ink)}
.df-dur{font-size:12px;font-weight:700;color:var(--red-deep);background:var(--red-soft);border-radius:12px;padding:2px 8px;white-space:nowrap}
.df-step-q{font-size:13px;color:var(--muted);line-height:1.5;flex:1}
.df-out{display:flex;gap:8px;font-size:13px;background:transparent;border-radius:0;padding:12px 0 0;border-top:1px solid var(--line);line-height:1.5;margin-top:2px}
.df-out svg{width:14px;height:14px;flex:0 0 auto;color:var(--navy);margin-top:1px}
.df-out b{color:var(--red-deep);font-weight:700;display:block}
.df-out span{color:var(--ink2)}
/* ═══ T2: 스텝퍼 격상 — 강한 선택·자세히 큐·커넥터·전환 ═══ */
.df-stage{transition:transform .16s,border-color .16s,box-shadow .16s,background .16s}
.df-stage:hover{border-color:var(--navy);background:#fff}
.df-cue{margin-top:8px;font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:12px;font-weight:700;color:var(--navy);display:inline-flex;align-items:center;gap:3px}
.df-cue-ar{font-size:10px}
.df-stage.is-primary{background:var(--navy);border-color:var(--navy);box-shadow:0 12px 28px rgba(24,41,110,.24);transform:translateY(-3px)}
.df-stage.is-primary .df-stage-t,.df-stage.is-primary .df-cue{color:#fff}
.df-stage.is-primary .df-stage-d{color:rgba(255,255,255,.82)}
.df-stage.is-primary .df-ic,.df-stage.is-primary .df-who svg{color:#fff}
.df-stage.is-primary .df-wk{color:#fff;background:rgba(255,255,255,.18)}
.df-stage.is-primary .df-who{color:rgba(255,255,255,.82);background:rgba(255,255,255,.12)}
.df-detail{border:1px solid var(--line);border-top:2px solid var(--navy);border-radius:12px;margin-top:16px}
.df-detail-badge{left:var(--notch-x,50%);transform:translateX(-50%);background:var(--navy)}
@keyframes dfIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.df-detail-inner.df-anim{animation:dfIn .18s cubic-bezier(.2,.8,.2,1)}
.df-dur.is-par{color:var(--navy);background:#eef1f8}
/* T3: Discovery 딥다이브 종속 블록 */
.df-deepdive{margin-top:26px;padding:22px 18px 2px;border-top:1px dashed var(--line);background:linear-gradient(180deg,rgba(24,41,110,.025),transparent 55%)}
.dd-lead{font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--navy);background:#eef1f8;border-radius:var(--r-pill);padding:5px 14px;display:inline-block;margin-bottom:20px}
.dd-block{margin-bottom:24px}
.dd-h{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.dd-num{font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:12px;font-weight:700;color:var(--navy);background:#eef1f8;border-radius:8px;padding:3px 8px;letter-spacing:.03em}
.dd-h b{font-family:var(--font);font-size:16px;font-weight:700;color:var(--ink)}
.dd-ctx{font-size:13px;color:var(--muted);margin:0 0 14px}
/* T6-6 섹션 하단 인라인 CTA (하단 CTA보다 한 단계 작게) */
.meth-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:40px}
/* T6-4 용어 툴팁 (점선 밑줄 + hover/focus) */
abbr.gl{text-decoration:none;border-bottom:1px dotted var(--navy);cursor:help;position:relative;outline:none}
abbr.gl:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:2px}
abbr.gl:hover::after,abbr.gl:focus::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:12px;font-weight:400;letter-spacing:0;padding:8px 12px;border-radius:8px;width:max-content;max-width:230px;white-space:normal;line-height:1.5;text-align:left;z-index:30;box-shadow:0 10px 30px rgba(0,0,0,.22);pointer-events:none}
abbr.gl:hover::before,abbr.gl:focus::before{content:"";position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink);z-index:30;pointer-events:none}
/* T4: 방법론 반응형 — ≤768 아코디언(상세가 선택 카드 아래로 이동됨) */
@media(max-width:768px){
  .df-node{padding:2px 2px 0}
  .df-node-dot{width:38px;height:38px;border-width:2px}
  .df-node-dot svg{width:19px;height:19px}
  .df-stages::before,.df-stages::after{top:23px}
  .df-node-t{font-size:12px}
  .df-node-wk{font-size:10px}
  .df-hint{display:none}
  .df-detail-badge{display:none}
  .df-steps{flex-direction:column}
  .df-steps .df-arrow{transform:rotate(90deg);align-self:center;opacity:.5}
  .df-detail-head h4{font-size:18px}
  .df-detail{padding:22px 14px 16px}
  .df-stages,.df-stages>*,.df-detail,.df-detail-inner,.df-deepdive,.dd-block,.pq-grid,.pq-cards,.axis-card{min-width:0;max-width:100%}
  .pq-grid{grid-template-columns:1fr;gap:16px}
  .pq-figure{overflow-x:visible;max-width:100%}
  .pq-figure svg{min-width:0;width:100%}   /* SA22 감사 P1: 매트릭스는 컨테이너 fit(2×2라 334px서도 4사분면 판독 OK) */
  /* 줌감사 P2: 피라미드(1000px 단일 SVG·5레이어+예시카드)는 fit 시 텍스트 과축소·붕괴 → 가로 스크롤로 가독 확보(캐논 허용 스트립) */
  .method-figure{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  .method-figure svg{min-width:800px;width:800px}
  .df-deepdive{padding:20px 4px 2px}
}
.pq-grid{display:grid;grid-template-columns:5fr 4fr;gap:26px;align-items:center;max-width:1000px;margin:0 auto}
.pq-figure svg{display:block;width:100%;height:auto}
.pq-cards{display:grid;gap:14px}
.axis-card{border-radius:12px;padding:16px 18px;background:var(--panel2);border:1px solid var(--line)}
.axis-h{font-family:var(--font);font-size:16px;font-weight:700;margin-bottom:10px;display:flex;align-items:center}
.axis-h::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}
.axis-accent .axis-h{color:var(--red-deep)}.axis-accent .axis-h::before{background:var(--red-deep)}
.axis-navy .axis-h{color:var(--navy)}.axis-navy .axis-h::before{background:var(--navy)}
.axis-badge{font-family:'Pretendard Variable',Pretendard,-apple-system,sans-serif;font-size:10px;font-weight:700;letter-spacing:.02em;border-radius:var(--r-sm);padding:2px 7px;margin-right:9px}
.axis-accent .axis-badge{color:var(--red-deep);background:var(--red-soft)}
.axis-navy .axis-badge{color:var(--navy);background:#eef1f8}
.axis-item{font-size:14px;color:var(--ink2);padding:6px 0;border-bottom:1px solid var(--line);line-height:1.5}
.axis-item:last-child{border-bottom:none}
.method-figure{overflow-x:auto}
.method-figure svg{display:block;width:100%;max-width:1000px;height:auto;margin:0 auto}
@media(max-width:1024px){.df-steps{flex-wrap:wrap}.df-step{flex-basis:calc(50% - 8px)}.df-steps .df-arrow{display:none}} /* W0: 960~1080 대역 스텝 4장 압착 → 라벨 강제 분절(break-word) 교정 — 스텝만 2×2 */
@media(max-width:1024px){.df-stages,.df-steps{flex-wrap:wrap}.df-stage,.df-step{flex-basis:calc(50% - 8px)}.pq-grid{grid-template-columns:1fr}.df-stages .df-arrow,.df-steps .df-arrow{display:none}}
@media(max-width:500px){.df-stage,.df-step{flex-basis:100%}}

/* 16888 사례 카드 — 정제 팔레트(촌스러운 레드타이틀/핑크칩 제거·잉크 위계 + 절제된 단일 액센트)
   위계: ①고객사(네이비·클라이언트 credential) ②에이전트명(잉크·제품 타이틀) ③설명(뮤트) · 레드=성과지표에만(디자인 규칙) */
.case-card{position:relative}
.case-card .cust{font-size:14px;font-weight:800;color:var(--navy);letter-spacing:-.2px;margin:16px 0 6px;display:flex;align-items:center;gap:7px}
.case-card .cust::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--navy);flex:none}
.case-card .case-agent{font-size:17px;font-weight:800;color:var(--ink);margin:0 0 7px;letter-spacing:-.5px;line-height:1.4;text-wrap:balance;min-height:48px;display:flex;align-items:flex-start;word-break:keep-all;overflow-wrap:break-word}
.case-card h3{font-size:14px;font-weight:500;color:var(--muted);margin:0 0 2px;min-height:0;line-height:1.62}
/* 성과지표 = 카드 유일 브랜드 액센트(규칙: 레드는 핵심 성과지표 한정) */
.case-card .eff{font-size:14px;font-weight:800;color:var(--red-deep);margin-top:16px;letter-spacing:-.2px;display:flex;align-items:baseline;gap:7px}
.case-card .eff::before{content:"";width:14px;height:2px;background:var(--red-deep);align-self:center;flex:none;border-radius:2px}
/* 정제 칩 — 핑크/솔리드 레드 제거 → 중립 */
.case-card .tag{background:#fff;border:1px solid var(--line);color:var(--muted);font-weight:600}
.case-card .tag.sector{background:var(--panel);border:1px solid transparent;color:var(--navy);font-weight:700}
/* 캐러셀 슬라이드 — 에이전트명(제품 타이틀·잉크)을 설명 위에 */
.slide-agent{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;font-weight:800;color:var(--ink2);letter-spacing:.01em;margin-bottom:10px}
.slide-agent .sdom{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:12px;font-weight:600;color:var(--navy);background:rgba(24,41,110,.08);padding:3px 10px;border-radius:999px;letter-spacing:0}   /* 도메인(의료 등) 칩 — 다양한 도메인 시그널 */
.slide-body h3{margin-top:0}

/* ═══════════════════ v21 델타 (A. 디자인 정합 · enterprise.kt.com 실측 + aible 첫입장 + KT AX Squad 레드 강조) ═══════════════════ */
/* --- A6 팔레트 보강(관리자 콘솔·딥네이비) --- */
:root{--navy-deep:#061349;--ink-black:#151517;--panel-gray:#f1f1f1}
/* --- A1 히어로 = 다크 시네마틱 #06070d + aible식 글로우 아크 + 중앙 비네트 --- */
.hero{background:#06070d}
.hero::before{background:radial-gradient(120% 90% at 78% -12%,rgba(46,66,132,.44),transparent 55%),radial-gradient(90% 72% at 8% 114%,rgba(18,28,72,.42),transparent 62%),linear-gradient(180deg,#0a0f22 0%,#070a14 62%,#05060c 100%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;left:0;right:0;bottom:0;top:0;height:auto;width:auto;border-radius:0;box-shadow:none;background:radial-gradient(135% 108% at 50% 42%,transparent 55%,rgba(0,0,0,.62) 100%)}
.hero-net{opacity:.66}.hero-particles{opacity:.58}
.hero-vig{display:none}
/* 글로우 아크(우측 스윕 발광 곡선 = 첫 입장 임팩트) */
.hero-arc{position:absolute;z-index:-1;pointer-events:none;width:150vh;height:150vh;right:-52vh;top:50%;transform:translateY(-50%);border-radius:50%;background:radial-gradient(circle at 30% 50%,rgba(70,104,205,.16),rgba(26,40,104,.06) 44%,transparent 60%)}
.hero-arc::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 130deg,transparent 0deg,rgba(150,182,255,.08) 22deg,rgba(210,226,255,.95) 58deg,rgba(150,186,255,.28) 92deg,transparent 140deg);-webkit-mask:radial-gradient(circle,transparent 59.6%,#000 60.5%,#000 62%,transparent 63%);mask:radial-gradient(circle,transparent 59.6%,#000 60.5%,#000 62%,transparent 63%)}
.hero-arc::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 110px 26px rgba(60,100,205,.13)}
@media(max-width:768px){.hero-arc{width:120vh;height:120vh;right:-46vh;opacity:.8}.hero h1{font-size:38px;line-height:1.2}:root{--sec:76px}}
/* --- A2 H1 강조 라인 = 브라이트 레드(다크 위 팝) --- */
.hero h1 .ac,.hero-in h1 .ac{color:#fff;-webkit-text-fill-color:#fff}
.hero .hpill{border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.9)}
/* --- A3/A4 레드 = 강조 지점만: 1차 CTA(과제 신청)·H1 강조·로고. btn-red 레드 복원(v18 네이비 되돌림) --- */
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-deep)}
.hero .cta .btn-red{background:var(--red);color:#fff;border:0;box-shadow:0 10px 30px rgba(24,41,110,.42)}
.hero .cta .btn-red:hover{background:var(--red-deep)}
.hero .cta .btn-line.on-dark{background:transparent;border-color:rgba(255,255,255,.5);color:#e7ebf5}
.hero .cta .btn-line.on-dark:hover{background:#fff;color:var(--ink);border-color:#fff}
/* --- A5 선택·활성 = 전부 네이비(블랙·장식레드 금지) --- */
.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.pf-chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.ws-role button.active{background:var(--navy);color:#fff}
.ws-maintabs button.active{color:var(--navy);border-bottom-color:var(--navy)}
.ws-maintabs button.active .ms{color:var(--muted)}
/* --- A7 로고 = KT 공식 심볼 락업(플레이스홀더 "kt" — 실서비스는 KT 브랜드킷 심볼로 교체·E-1). 나브 상태 무관 레드 유지 --- */
.logo .ktph{font-family:var(--font);font-weight:800;font-size:25px;color:#EC193A;letter-spacing:-2px;line-height:1;margin-right:8px;flex:none;display:inline-block}
.logo .wm b{color:var(--red)}
.nav.dark .logo .wm{color:#fff}
footer .logo .ktph{font-size:22px}
/* --- A8 고객사 로고월 = 히어로 바로 아래 마퀴 + 상단 아크 글로우(width:100% 오버플로우 방지) --- */
.logo-band{position:relative;padding:66px 0;overflow:hidden}   /* 흐름 전환 밴드 — 히어로 밑 아닌 사례↔진행방식 사이 · 로고 확대 맞춰 영역 확대 */
.logo-band::before{display:none}   /* 히어로 블렌드용 다크 글로우 제거(이제 라이트 섹션 사이) */
.logo-band .wrap{position:relative;z-index:1}
.logo-track{gap:96px}
.logo-band .lm-word{font-size:32px;color:#8f8f97;font-weight:800}   /* 워드마크 확대 — 이미지 로고(40px)와 시각 균형 */
.logo-band .lm-logo{height:40px;max-width:200px}                    /* 실 로고 이미지 확대(30→40·사장님 "48px 정도"). SA22 감사 P4: max-width 상향(440) 시도했으나 넓은 워드마크(CHAEVI 347·분당 427)가 폭으로 행 지배→원복. 진짜 광학 정규화=로고 SVG 자산 리워크(자산 대기) */
.logo-band .lm-i{height:56px}                                       /* 라인(각 로고 셀) 확대 */
.logo-track span:hover{color:var(--ink2)}
/* reduced-motion — 글로우 아크·마퀴 정지 */
@media (prefers-reduced-motion:reduce){.hero-arc{animation:none}.logo-track{animation:none}}

/* ═══════════════════ v21 델타 (B. 관리자 콘솔 · 15888 운영모델 흡수) ═══════════════════ */
@keyframes admfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.adm-sub{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0 22px;border-bottom:1px solid var(--line)}
.adm-sub button{padding:11px 16px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;margin-bottom:-1px;font-family:var(--font)}
.adm-sub button:hover{color:var(--navy)}
.adm-sub button.on{color:var(--navy);border-bottom-color:var(--navy)}
.adm-newc{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:3px;border-radius:999px;background:var(--s-new);color:#fff;font-size:11px;font-weight:800;line-height:1;vertical-align:1px;font-variant-numeric:tabular-nums}   /* 신규 접수 알림 카운트(상태 6색과 별개) */
.adm-panel{display:none}.adm-panel.on{display:block;animation:admfade .3s ease}
.adm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.adm-head h3{font-family:var(--font);font-size:18px;font-weight:700;color:var(--ink)}   /* 명부 제목 = Pretendard 18px 볼드(2026-07-27 사장님·전역 h3 KT flow 오버라이드) */
.adm-head p{font-size:13px;color:var(--muted);margin-top:3px}
.adm-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* 이름·이메일 검색 인풋 — ★var(--line-strong) 미정의라 폴백 없으면 border 무효화(박스 안 보임) 수리 + 돋보기 아이콘으로 인풋 명확화 */
.adm-search{height:36px;padding:0 12px 0 36px;border:1px solid var(--line-strong,#c9ccd4);border-radius:8px;font-size:14px;min-width:220px;font-family:var(--font);color:var(--ink);background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.35-4.35'/></svg>") no-repeat left 11px center/15px}
.adm-search:focus{outline:none;border-color:var(--navy)}
.adm-tools .btn-md{min-height:36px;height:36px;min-width:0;padding:0 16px;font-size:14px;border-radius:8px;display:inline-flex;align-items:center}   /* 멤버 등록·초대 = Medium */
.mtable{width:100%;border-collapse:collapse;background:#fff;border:0;border-radius:0}   /* 바깥 보더 제거·각진 표(2026-07-27 사장님) — 구분은 안쪽 열/행 선으로만 · 전폭 유지(로스터는 .rsp 스페이서가 남는 폭 흡수) */
.mtable th{background:var(--panel);text-align:left;padding:9px 10px;font-size:12px;font-weight:800;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap}
.mtable td{padding:8px 10px;font-size:14px;color:var(--ink-soft);border-bottom:1px solid var(--line);vertical-align:middle}
.mtable tr:last-child td{border-bottom:none}
.mtable th:not(:last-child),.mtable td:not(:last-child){border-right:1px solid var(--line)}   /* 안쪽 열 구분선(바깥 프레임 대신)·마지막 열 제외 */
/* 직무·역할권한·스쿼드부하·상태(2~5열) 중앙정렬 + nowrap */
#wsAdmin .mtable th:nth-child(n+2):nth-child(-n+5),#wsAdmin .mtable td:nth-child(n+2):nth-child(-n+5){text-align:center;white-space:nowrap}
/* 로스터: 성함/이메일(1열)이 남는 폭 흡수해 가장 넓게 · 나머지(2~6열)는 내용폭 수축(관리=버튼폭만·적당히)(2026-07-27 사장님) */
#wsAdmin [data-p="roster"] .mtable th:nth-child(n+2),#wsAdmin [data-p="roster"] .mtable td:nth-child(n+2){width:1%;white-space:nowrap}
#wsAdmin [data-p="roster"] .mtable .m-actions{flex-wrap:nowrap}   /* 관리 버튼 한 줄 유지(모바일은 표 overflow-x 스크롤) */
.m-name{font-weight:700;color:var(--ink);font-size:15px;line-height:1.3}   /* 이름 = 기본 15px(2026-07-27 사장님) */
.m-mail{color:var(--muted);font-size:14px;line-height:1.3;margin-top:1px}   /* 이메일 = 14px · 2줄 간격 조임(행 높이 축소) */
/* 역할·권한 select — 파이프 .dfsel 과 정합: 네이티브 화살표 폐기·커스텀 SVG(오른쪽 여백 확보) */
.rolesel{min-width:78px;height:34px;padding:0 26px 0 10px;border:1px solid var(--line);border-radius:8px;font-size:12px;font-family:var(--font);color:var(--ink-soft);background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 9px center/13px;-webkit-appearance:none;appearance:none;cursor:pointer}
.rolesel:hover{border-color:var(--navy)}
.rolesel:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12)}
.m-none{color:var(--muted2);font-size:13px}
.badge-s{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600}   /* SSOT §I: 라벨칩 단일 폼(pill/12/600·상태색 --s-* 유지·dot 유지) */
.badge-s::before{content:"";width:6px;height:6px;border-radius:50%}
.bs-on{background:var(--s-ok-bg);color:var(--s-ok-tx)}.bs-on::before{background:var(--s-ok-dot)}   /* 활성화 = ok */
.bs-wait{background:var(--s-hold-bg);color:var(--s-hold-tx)}.bs-wait::before{background:var(--s-hold-dot)}   /* 계정 미생성/승인 대기 = hold */
.bs-off{background:var(--s-idle-bg);color:var(--s-idle-tx)}.bs-off::before{background:var(--s-idle-dot)}   /* 정지 = idle */
.bs-active{background:var(--s-active-bg);color:var(--s-active-tx)}.bs-active::before{background:var(--s-active-dot)}   /* 검토중/처리중 = active */
.bs-stop{background:var(--s-stop-bg);color:var(--s-stop-tx)}.bs-stop::before{background:var(--s-stop-dot)}   /* 반려 = stop */
.m-actions{display:flex;gap:6px;flex-wrap:wrap}
.mact{padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap;font-family:var(--font)}
.mact:hover{border-color:var(--navy);color:var(--navy)}
.mact.danger:hover{border-color:var(--red);color:var(--red)}
/* SSOT §K — 멤버 명부 액션 = 주요 1 + ⋯ 오버플로(행별 개수 편차 0·열 폭 안정·기능 접기) */
#wsAdmin [data-p="roster"] .m-actions{flex-wrap:nowrap;justify-content:flex-start;gap:6px;position:relative}
.m-kebab{width:32px;height:32px;flex:none;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:17px;font-weight:800;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font)}
.m-kebab:hover{border-color:var(--red);color:var(--red)}
.m-kebab[aria-expanded="true"]{border-color:var(--navy);color:var(--navy)}
#wsAdmin .m-menu{position:absolute;top:38px;right:0;z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(15,26,58,.14);padding:6px;min-width:148px;display:flex;flex-direction:column;gap:2px}
#wsAdmin .m-menu .mact{width:100%;text-align:left;border:0;background:none;border-radius:8px;padding:9px 12px;font-size:13px;color:var(--ink-soft);white-space:nowrap}
#wsAdmin .m-menu .mact:hover{background:var(--panel);color:var(--ink)}
#wsAdmin .m-menu .mact.danger{color:var(--s-stop-tx)}
#wsAdmin .m-menu .mact.danger:hover{background:var(--s-stop-bg);border-color:transparent}
.load-bar{display:inline-block;width:52px;height:6px;background:var(--panel);border-radius:999px;overflow:hidden;vertical-align:middle;margin-right:7px}
.load-bar i{display:block;height:100%;background:var(--navy);border-radius:999px}
/* 스쿼드 부하 = 숫자 중심(2026-07-27 사장님) — 0=옅게·1~2=본문·3건+=앰버 '과부하' 배지(XSmall 12/3·9/radius6/700) */
.load-n{font-size:13px;font-weight:600;color:var(--ink2)}
.load-n.zero{color:var(--muted2);font-weight:500}
.load-n.over{color:var(--amber);font-weight:700}
.load-over{margin-left:8px;font-size:12px;font-weight:700;color:var(--amber);background:rgba(157,79,0,.09);padding:3px 9px;border-radius:8px;white-space:nowrap}
.adm-empty{padding:34px;text-align:center;color:var(--muted);background:var(--panel);border-radius:12px;font-size:14px}
.adm-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
/* 상단 KPI 카드 — 대시보드 d-card 와 정합(radius 8·라이트 border/bg·패딩 18/20) */
.adm-card{background:var(--n0);border:1px solid var(--n100);border-radius:8px;padding:18px 20px}
.adm-card .k{font-size:12px;color:var(--muted);font-weight:700}
.adm-card .v{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.5px;margin-top:6px}
.adm-card .d{font-size:12px;color:var(--muted);margin-top:4px}
.intake-row{display:grid;grid-template-columns:1.5fr 1fr .9fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px}
.intake-row .t{font-weight:700;color:var(--ink);font-size:14px}
.intake-row .meta{font-size:12px;color:var(--muted);margin-top:2px}
.ref-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ref-box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}
.ref-box h4{font-size:14px;font-weight:800;color:var(--ink);margin-bottom:10px}
.ref-box .tag{display:inline-block;padding:5px 11px;border-radius:999px;background:var(--panel);color:var(--ink-soft);font-size:12px;margin:0 6px 6px 0;border:1px solid var(--line);font-weight:600}
.adm-note{font-size:12px;color:var(--ink-3);margin-top:12px;line-height:1.6;background:transparent;border:0;border-radius:0;padding:0}   /* SA24 §E·P5: 좌측 강조바+박스 제거 → 조용한 보조 텍스트(위계=타이포·간격). 문구·<b> 유지 */
.modal-ov{position:fixed;inset:0;background:rgba(8,11,22,.55);z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal-ov.on{display:flex;animation:admfade .25s ease}
.modal{background:#fff;border-radius:16px;max-width:460px;width:100%;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.32)}
.modal h3{font-size:19px;font-weight:800;color:var(--ink)}
.modal .msub{font-size:13px;color:var(--muted);margin:4px 0 14px;line-height:1.55}
.modal label{display:block;font-size:12px;font-weight:700;color:var(--ink-soft);margin:12px 0 5px}
.modal input,.modal select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:14px;font-family:var(--font)}
.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal-act{display:flex;gap:10px;margin-top:22px}
.modal-act .btn{flex:1;justify-content:center}
.modal-flow{font-size:12px;color:var(--navy);margin-top:14px;text-align:center;font-weight:600}
.adm-gate{padding:40px;text-align:center;color:var(--muted);background:var(--panel);border-radius:12px;font-size:14px}
@media(max-width:768px){.adm-cards{grid-template-columns:1fr}.mtable{display:block;overflow-x:auto;white-space:nowrap}.ref-grid{grid-template-columns:1fr}.intake-row{grid-template-columns:1fr}}

/* v21 UX: 임직원 로그인 = 나브 우측 진입점(푸터 전용 → 상단 노출). 로그인 시 유저칩으로 대체 */
/* (구 .nav-login 스타일 제거 — Medium 통합 규칙으로 일원화) */
.nav-login:hover{color:var(--red)}
.nav.dark .nav-login{color:rgba(255,255,255,.82)}.nav.dark .nav-login:hover{color:#fff}
@media(max-width:500px){.nav-login{display:none!important}}

/* ═══════════════════ v21 UX 완성 (실사용 흐름 마찰 제거) ═══════════════════ */
/* #2 역할 스위처 라벨 — 무엇을 토글하는지 명시 */
.ws-role-lb{display:inline-flex;align-items:center;padding:0 10px 0 12px;font-size:12px;font-weight:600;color:var(--muted)}
/* #6 모바일 햄버거 + 드로어 */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;background:none;border:0;cursor:pointer;padding:9px}
.nav-burger span{display:block;height:2px;width:22px;background:var(--ink2);border-radius:2px;transition:.25s}
.nav.dark .nav-burger span{background:#fff}
.nav-burger.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.on span:nth-child(2){opacity:0}
.nav-burger.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:76px;left:0;right:0;z-index:49;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 20px 40px rgba(16,24,64,.14);flex-direction:column;padding:6px 0;animation:mmdrop .22s ease}
.mobile-menu.open{display:flex}
@media(min-width:769px){.nav:not(.authed) .mobile-menu{display:none!important}}
@media(min-width:901px){.nav.authed .mobile-menu{display:none!important}}   /* 로그인 나브 = 900까지 버거 → 모바일 메뉴도 900까지 열림 */
@keyframes mmdrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.mobile-menu a{padding:15px 24px;font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;border-bottom:1px solid var(--panel)}
.mobile-menu a:active,.mobile-menu a:hover{color:var(--red);background:var(--panel)}
.mobile-menu .mm-auth{color:var(--navy);border-bottom:0}
@media(max-width:768px){   /* 나브 붕괴 = 768 티어(콘텐츠가 768 밑에서 한 줄 불가 → 버거) */
  .nav-burger{display:flex}
  .nav-links{display:none}
  .nav-ico,.nav-login,.nav-acct,.nav-cta{display:none!important}
}
/* 로그인 시 나브 폭↑(워크스페이스 링크+사용자) → 900 밑에서 조기 버거(익명은 768 유지) */
@media(max-width:900px){
  .nav.authed .nav-burger{display:flex}
  .nav.authed .nav-links{display:none}
  .nav.authed .nav-ico,.nav.authed .nav-acct,.nav.authed .nav-cta{display:none!important}
}
@media (prefers-reduced-motion:reduce){.mobile-menu{animation:none}}

/* ═══════════════════ v21 모니터링 재설계 (직관·심플·시각) ═══════════════════ */
/* 대시보드 헤더 */
.dash-head{margin-bottom:22px}
.dash-head h2{font-size:22px;font-weight:800;letter-spacing:-.5px;color:var(--ink)}
.dash-head p{font-size:14px;color:var(--muted);margin-top:5px}
/* KPI 카드 — 상태 액센트 바 + 큰 숫자 + 서브 라벨 */
.kpi2{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.kc{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 20px 18px;overflow:hidden;transition:.18s}
.kc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--navy)}
.kc.warn::before{background:var(--amber)}.kc.demo::before{background:var(--navy)}
.kc:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:0 10px 26px rgba(16,24,64,.07)}
.kc-n{font-size:34px;font-weight:800;letter-spacing:-1.4px;color:var(--ink);line-height:1}
.kc.warn .kc-n{color:var(--amber)}.kc.demo .kc-n{color:var(--red-deep)}
.kc-l{font-size:14px;font-weight:700;color:var(--ink-soft);margin-top:12px}
.kc-s{font-size:12px;color:var(--muted2);margin-top:3px}
/* 차트 다듬기 — 라운드 바 */
.pb-sub{font-weight:500;color:var(--muted);font-size:13px}
.bar-track{border-radius:999px;overflow:hidden}
.bar-fill{border-radius:999px;transition:width .5s cubic-bezier(.2,.8,.25,1)}
/* 패널 카운트 뱃지 */
.pb-count{font-size:12px;font-weight:800;min-width:22px;height:22px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel);color:var(--muted)}
.pb-count.on{background:var(--navy);color:#fff}
h3 .pb-count{margin-left:auto}
/* 지연 없음 = 안심 상태 */
.dash-ok{padding:22px;text-align:center;color:#1f7a34;background:#eef4ec;border-radius:12px;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px}
.dash-ok::before{content:"";width:16px;height:16px;border-radius:50%;background:#1f7a34;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 13l4 4L19 7' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/12px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 13l4 4L19 7' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/12px no-repeat}
/* 데모 운영 = 칩 그리드(긴 리스트 폐기) */
.demo-chips{display:flex;flex-wrap:wrap;gap:8px}
.demo-chip{font-size:12px;font-weight:600;color:var(--ink2);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
/* 서비스 상태 — 신호등 배너 */
.svc-hero{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:16px;margin-bottom:18px;border:1px solid}
.svc-hero.ok{background:linear-gradient(120deg,#f0f7f1,#eef4ec);border-color:#cfe6d3}
.svc-hero.warn{background:linear-gradient(120deg,#fdf5ea,#fdf3e6);border-color:#f0dcbb}
.svc-dot{width:14px;height:14px;border-radius:50%;flex:none;position:relative}
.svc-hero.ok .svc-dot{background:#1f9d3e;box-shadow:0 0 0 0 rgba(31,157,62,.5);animation:svcpulse 2s infinite}
.svc-hero.warn .svc-dot{background:#d08a1a}
@keyframes svcpulse{0%{box-shadow:0 0 0 0 rgba(31,157,62,.45)}70%{box-shadow:0 0 0 9px rgba(31,157,62,0)}100%{box-shadow:0 0 0 0 rgba(31,157,62,0)}}
.svc-title{font-size:16px;font-weight:800;color:var(--ink)}
.svc-sub{font-size:12px;color:var(--muted);margin-top:3px}
@media(max-width:768px){.kpi2{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1024px){.dash-grid{grid-template-columns:1fr}}

/* v21 QA: 사례 카드 행 정렬 완성 — 성과지표·자세히보기를 카드 하단에 앵커(설명 1/2줄 무관 행 전체 정렬) */
.case-card{display:flex;flex-direction:column}
.case-card .eff{margin-top:auto;padding-top:16px}

/* ═══════════════════ v21-FINAL (A2: 레드는 KT 로고에만 · UI 전부 네이비/뉴트럴 · KT Enterprise 실측) ═══════════════════ */
/* H1 화이트(레드 강조 폐기) */
.hero h1 .ac,.hero-in h1 .ac{color:#fff;-webkit-text-fill-color:#fff}
.hero .hpill{border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.9)}
/* 1차 CTA = 네이비(히어로=네이비+미세 화이트 보더 / 그 외=솔리드 딥네이비) */
.btn-red{background:var(--navy);color:#fff}.btn-red:hover{background:#101f52}
.hero .cta .btn-red{background:var(--navy);border:1px solid rgba(255,255,255,.16);box-shadow:none}
.hero .cta .btn-red:hover{background:#22367e;border-color:rgba(255,255,255,.3)}
/* 나브 링크·아이콘·로그인 = 네이비/뉴트럴(활성·hover 레드 폐기) */
.nav-links a:hover,.nav-links a.active{color:var(--navy)}
.nav.dark .nav-links a:hover,.nav.dark .nav-links a.active{color:#fff}
.nav-ico:hover{color:var(--navy)}.nav.dark .nav-ico:hover{color:#fff}
/* (구 .nav-login border/padding 제거 — Medium 통합 규칙으로 일원화) */
.nav-login:hover{color:var(--navy);border-color:var(--navy)}
.nav.dark .nav-login{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.85)}.nav.dark .nav-login:hover{color:#fff;border-color:#fff}
/* 키커·칩·캐러셀·카드 hover = 네이비 */
.kicker{color:var(--navy)}
.chip:hover{border-color:var(--navy);color:var(--navy)}
.pf-chip:hover{border-color:var(--navy)}
.car-dots button.on{background:var(--navy)}
.car-arrow:hover{border-color:var(--navy);color:var(--navy);box-shadow:0 10px 30px rgba(24,41,110,.2)}
.numcard:hover,.teamcard:hover,.case-card:hover,.tcard:hover{border-color:var(--navy);box-shadow:0 16px 44px rgba(16,24,64,.10)}
.mobile-menu a:active,.mobile-menu a:hover{color:var(--navy)}
.nav-util-in a:hover,.nav-user button:hover{color:var(--navy)}
/* 사례 카드 — 고객사 dot·성과지표 네이비(레드 폐기) */
.case-card .cust{color:var(--navy)}
.case-card .cust::before{background:var(--navy)}
.case-card .eff{color:var(--navy)}
.case-card .eff::before{background:var(--navy)}
/* KPI 데모 카드·데모 뱃지 네이비(지연=앰버는 경고색으로 유지) */
.kc.demo::before{background:var(--navy)}.kc.demo .kc-n{color:var(--navy)}
.tag.live,.mini .badge.l{background:var(--navy)}
.slide-agent{color:var(--navy)}
/* danger 액션 = 앰버(레드 금지) */
.mact.danger:hover{border-color:var(--amber);color:var(--amber)}
/* 로고 워드마크 강조 b = 잉크(레드 폐기·심볼 kt만 레드) */
.logo .wm b{color:inherit}

/* ═══════════════════ v21-FINAL B6 관리자 커맨드센터 ═══════════════════ */
/* 개인화 인사 */
.cmd-greet{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.cmd-greet h2{font-size:24px;font-weight:800;letter-spacing:-.6px;color:var(--ink)}
.cmd-greet p{font-size:14px;color:var(--muted);margin-top:6px}
.cmd-greet p b{color:var(--navy);font-weight:800}
.cmd-badge{font-size:12px;font-weight:700;color:var(--navy);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 14px;white-space:nowrap}
.cmd-sec-h{font-size:13px;font-weight:800;color:var(--muted);letter-spacing:.02em;margin:28px 0 14px}
/* 액션 큐 — 클릭 시 해당 탭 점프 */
.cmd-queue{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.aq{display:flex;align-items:center;gap:14px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;cursor:pointer;font-family:var(--font);transition:.18s;position:relative;overflow:hidden}
.aq::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--navy)}
.aq.warn::before{background:var(--amber)}
.aq:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:0 10px 26px rgba(16,24,64,.08)}
.aq.warn:hover{border-color:var(--amber)}
.aq-n{font-size:30px;font-weight:800;letter-spacing:-1.2px;color:var(--ink);line-height:1;min-width:38px}
.aq.warn .aq-n{color:var(--amber)}
.aq.zero{opacity:.55}.aq.zero .aq-n{color:var(--muted2)}
.aq-tx{display:flex;flex-direction:column;gap:2px;flex:1}
.aq-l{font-size:14px;font-weight:700;color:var(--ink-soft)}
.aq-s{font-size:12px;color:var(--muted2)}
.aq-go{color:var(--muted2);font-size:16px;transition:.18s}
.aq:hover .aq-go{color:var(--navy);transform:translateX(3px)}
/* 파이프라인 퍼널 */
.funnel{display:flex;align-items:flex-end;gap:6px;padding:8px 0 0}
.fn-step{flex:1;display:flex;flex-direction:column;align-items:center}
.fn-col{width:100%;height:96px;display:flex;align-items:flex-end;justify-content:center}
.fn-bar{width:100%;max-width:120px;background:linear-gradient(180deg,#2a3e7a,var(--navy));border-radius:8px 8px 0 0;min-height:10px;transition:height .5s cubic-bezier(.2,.8,.25,1)}
.fn-n{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.8px;margin-top:10px}
.fn-val{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-.6px;text-align:center;margin-bottom:8px;line-height:1}
.fn-val.zero{color:var(--muted2)}
.fn-bar.zero{height:3px!important;min-height:3px;background:repeating-linear-gradient(90deg,#c3cbdf 0 5px,transparent 5px 9px);border-radius:2px}
.fn-l{font-size:12px;color:var(--muted);margin-top:8px;font-weight:600}
.fn-ar{color:#c3cbdf;font-size:18px;align-self:center;padding-bottom:44px;flex:none}
/* 멤버 부하 과부하 플래그 */
.bar-fill.over{background:var(--amber)}
/* 지연 리스트 클릭 버튼화 */
.mini-btn{width:100%;background:none;border:0;border-bottom:1px solid var(--panel);cursor:pointer;font-family:var(--font);text-align:left;transition:.15s}
.mini-btn:hover{background:var(--panel);border-radius:8px}
.mini-btn:last-child{border-bottom:0}
@media(max-width:768px){.cmd-queue{grid-template-columns:repeat(2,1fr)}.funnel{overflow-x:auto}}

/* ═══════ v22 원복: 레드 토큰 유지(v21-final 네이비 일소 폐기) — 본문 강조=레드·나브/푸터/카드=개별 네이비 오버라이드 ═══════ */
:root{--red:#18296e;--red-deep:#101f52;--red-soft:#eef1f8}
/* 방법론 다이어그램 잔여 강조 = 네이비 통일 */
.df-stage-t{color:var(--ink)}
.tag.sector{background:var(--panel);color:var(--navy);border-color:transparent}

/* v21-FINAL E1: 실 KT 로고(Wikimedia 공식·자체호스팅) — 밝은 나브=원본 컬러, 다크 나브·푸터=화이트 */
.kt-logo{height:28px;width:auto;display:block;flex:none}
.nav.dark .logo .kt-logo,footer .logo .kt-logo{filter:brightness(0) invert(1)}
.logo{gap:9px}
footer .kt-logo{height:25px}

/* ═══════════════════ AX 어시스턴트 챗봇 (사례 검색 = 니즈 진단 멀티턴) ═══════════════════ */
.asst{max-width:840px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 60px rgba(16,24,64,.08);overflow:hidden;display:flex;flex-direction:column}
.asst-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfcfe,#f5f7fc)}
.asst-ava{width:38px;height:38px;flex:none;border-radius:12px;background:linear-gradient(140deg,#2a3e7a,var(--navy));color:#fff;font-size:13px;font-weight:800;letter-spacing:.02em;display:flex;align-items:center;justify-content:center}
.asst-id{flex:1;min-width:0}
.asst-name{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.2px}
.asst-role{font-size:12px;color:var(--muted);margin-top:1px}
.asst-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#1f7a34;background:#eef4ec;border-radius:999px;padding:5px 11px;white-space:nowrap}
.asst-live .dot{width:7px;height:7px;border-radius:50%;background:#1f9d3e;box-shadow:0 0 0 0 rgba(31,157,62,.5);animation:svcpulse 2s infinite}
.asst-log{padding:22px 20px;display:flex;flex-direction:column;gap:16px;min-height:320px;max-height:56vh;overflow-y:auto;background:#fcfcfe;scroll-behavior:smooth}
.am{display:flex;gap:10px;align-items:flex-end;max-width:100%}
.am-a{justify-content:flex-start}
.am-u{justify-content:flex-end}
.am-ava{width:30px;height:30px;flex:none;border-radius:8px;background:linear-gradient(140deg,#2a3e7a,var(--navy));color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:2px}
.am-b{max-width:80%;padding:13px 16px;font-size:14px;line-height:1.62;border-radius:16px}
.am-a .am-b{background:#fff;border:1px solid var(--line);color:var(--ink-soft);border-bottom-left-radius:5px}
.am-u .am-b{background:var(--navy);color:#fff;border-bottom-right-radius:5px}
.am-b b{color:inherit;font-weight:800}
.am-a .am-b b{color:var(--navy)}
.am-dots{display:inline-flex;gap:4px;padding:2px 0}
.am-dots i{width:7px;height:7px;border-radius:50%;background:#b9c0d4;animation:amdot 1.2s infinite ease-in-out}
.am-dots i:nth-child(2){animation-delay:.18s}.am-dots i:nth-child(3){animation-delay:.36s}
@keyframes amdot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}
/* 추천 사례 카드(챗 내부) */
.am-cases{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.am-case{display:flex;flex-direction:column;gap:4px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;font-family:var(--font);transition:.16s;width:100%}
.am-case:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:0 12px 30px rgba(16,24,64,.1)}
.am-case-t{display:flex;align-items:center;justify-content:space-between;gap:8px}
.am-case-sec{font-size:12px;font-weight:700;color:var(--navy);background:var(--panel);border-radius:999px;padding:3px 10px}
.am-case-go{font-size:12px;font-weight:700;color:var(--muted2)}
.am-case:hover .am-case-go{color:var(--navy)}
.am-case-nm{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.3px;margin-top:2px}
.am-case-bf{font-size:13px;color:var(--muted);line-height:1.5}
.am-case-eff{font-size:13px;font-weight:800;color:var(--navy);margin-top:2px}
/* 퀵리플라이 칩 */
.asst-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 4px}
.asst-chips:empty{display:none}
.asst-chip{font-family:var(--font);font-size:13px;font-weight:600;color:var(--navy);background:#fff;border:1px solid #c9d2ea;border-radius:999px;padding:9px 15px;cursor:pointer;transition:.15s}
.asst-chip:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.asst-chip.alt{color:var(--ink2);border-color:var(--line);background:var(--panel)}
.asst-chip.alt:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
/* 입력 바 */
.asst-input{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--line);background:#fff}
.asst-input input{flex:1;min-width:0;height:48px;border:1px solid var(--line);border-radius:12px;padding:0 16px;font-family:var(--font);font-size:15px;background:#fbfcfe;color:var(--ink)}
.asst-input input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12);background:#fff}
.asst-input .btn{height:48px;padding:0 22px;border-radius:12px;flex:none}
/* 컴팩트 어시스턴트(보조) — 폭=컨테이너(아래 그리드와 정렬)·가볍고 낮게. 메인은 전체 사례 그리드 */
.asst-compact{max-width:100%;margin:0 0 6px;border-radius:16px;box-shadow:0 8px 30px rgba(16,24,64,.05)}
.asst-compact .asst-log{min-height:96px;max-height:260px;padding:16px 22px;gap:12px}
.asst-compact .asst-head{padding:12px 22px}
.asst-compact .asst-chips{padding:0 22px 2px}
.asst-compact .asst-input{padding:12px 22px}
.asst-compact .am-b{max-width:66%}
.asst-compact .am-cases{flex-direction:row;flex-wrap:wrap}
.asst-compact .am-case{flex:1 1 240px}
.exp-gridhead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:40px 0 18px;padding-top:26px;border-top:1px solid var(--line)}
.exp-gridhead h3{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.4px}
.exp-gridsub{font-size:14px;color:var(--muted)}
#caseWrap{margin-top:8px}
@media(max-width:500px){.am-b{max-width:86%}.asst-compact .asst-log{max-height:56vh}.asst-input .btn{padding:0 16px}}

/* ═══════════════════ 사례 상세 · 아키텍처 구성도 + 처리 흐름도 (라이브 데이터 생성) ═══════════════════ */
.cd-sech{font-size:14px;font-weight:800;color:var(--navy);margin-bottom:16px;letter-spacing:-.2px;display:flex;align-items:center;gap:8px}
.cd-sech::before{content:"";width:16px;height:2px;background:var(--navy);border-radius:2px}
.arch{background:linear-gradient(180deg,#fbfcfe,#f4f6fb);border:1px solid var(--line);border-radius:16px;padding:24px 22px}
.arch-flow{display:flex;align-items:stretch;gap:14px}
.arch-col{display:flex;flex-direction:column;gap:10px;justify-content:center}
.arch-in,.arch-out{flex:0 0 168px;min-width:0}
.arch-core{flex:1;min-width:0}
.arch-lbl{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);margin-bottom:2px}
.arch-node{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-size:13px;font-weight:600;color:var(--ink2);line-height:1.4;box-shadow:0 2px 8px rgba(16,24,64,.04)}
.arch-node.out{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}
.arch-ar{display:flex;align-items:center;color:#b8c1da;font-size:22px;font-weight:400;flex:none}
.arch-core{background:#fff;border:1.5px solid #d3dcf1;border-radius:16px;padding:16px 16px 18px;box-shadow:0 6px 20px rgba(16,24,64,.06)}
.arch-core-h{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--navy);letter-spacing:-.2px}
.arch-core-dot{width:8px;height:8px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 4px rgba(24,41,110,.12);flex:none}
.arch-core-s{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.arch-agents{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:9px;margin-top:14px}
.arch-agent{display:flex;align-items:center;gap:9px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12px;font-weight:700;color:var(--ink-soft);line-height:1.3}
.arch-agent .ad{width:7px;height:7px;border-radius:50%;background:linear-gradient(140deg,#2a3e7a,var(--navy));flex:none}
.arch-rail{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.arch-rail-l{font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}
.arch-chips{display:flex;flex-wrap:wrap;gap:7px}
.arch-chip{font-size:12px;font-weight:600;color:var(--ink2);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.arch-chip.model{color:var(--navy);background:var(--red-soft);border-color:transparent;font-weight:700}
@media(max-width:768px){.arch-flow{flex-direction:column}.arch-in,.arch-out{flex:none}.arch-ar{transform:rotate(90deg);align-self:center}.arch-agents{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.arch-agents{grid-template-columns:1fr}}

/* ═══════════════════ 프로그램 소개 (14888 브로슈어 이식 · 톤=네이비 · 간격=홈) ═══════════════════ */
.pg-bd{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.bd-chip{font-size:14px;font-weight:600;color:var(--ink2);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:9px 16px}
.bd-chip b{color:var(--navy);font-weight:800;margin-left:2px}
.pg-stepper{display:flex;align-items:stretch;gap:8px;margin-top:48px;flex-wrap:wrap;justify-content:center}
.pg-step{flex:1;min-width:150px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 16px}
.pg-step-n{width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center}
.pg-step-ic{height:34px;display:flex;align-items:center;justify-content:center;flex:none}   /* 원 제거 — 라인 아이콘만 (사장님) */
.pg-step-ic svg{width:31px;height:31px;stroke:var(--navy);display:block}
.pg-step b{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.3px}
.pg-step span{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--muted2);text-transform:uppercase}
.pg-step-ar{display:flex;align-items:center;color:#c3cbdf;font-size:20px;flex:none}
.pg-statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.pg-statcard{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px}
.pg-statnum{font-size:40px;font-weight:800;color:var(--navy);letter-spacing:-1.5px;line-height:1}
.pg-statnum .unit{font-size:17px;color:var(--ink2);margin-left:3px;font-weight:700;letter-spacing:0}
.pg-statlbl{font-size:16px;font-weight:700;color:var(--ink);margin-top:12px}
.pg-statsub{font-size:13px;color:var(--muted);margin-top:5px}
.pp-tag{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--navy);background:var(--red-soft);border-radius:8px;padding:3px 9px;margin-bottom:12px}
.pg-sectorgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pg-sectorcard{text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;cursor:pointer;font-family:var(--font);transition:.18s;display:flex;flex-direction:column;gap:8px}
.pg-sectorcard:hover{border-color:var(--navy);transform:translateY(-3px);box-shadow:0 16px 40px rgba(16,24,64,.1)}
.pg-sectorcard-h{font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.3px;display:flex;align-items:center;gap:8px}
.pg-sectorcard-n{font-size:12px;font-weight:700;color:var(--navy);background:var(--panel);border-radius:999px;padding:3px 10px}
.pg-sectoritem{font-size:14px;color:var(--muted);line-height:1.5}
.pg-sectorcard-cta{font-size:14px;font-weight:700;color:var(--navy);margin-top:auto;padding-top:6px}
@media(max-width:1024px){.pg-statgrid,.pg-sectorgrid{grid-template-columns:1fr}}   /* 줌감사 P4: 화살표 rotate 제거 — 카드가 가로 한 줄인 구간(501~1024)서 ↓ 오방향 해소. rotate는 세로스택(≤500)로 이동 */
/* PT2: 회전 transform 은 레이아웃 불변 — 좁은 폭 스텝퍼는 세로 스택으로(가로 오버플로 근본 해소) */
@media(max-width:500px){.pg-stepper{flex-direction:column;align-items:stretch}.pg-step{width:100%}.pg-step-ar{justify-content:center;width:100%;flex-basis:auto;transform:rotate(90deg)}}   /* 줌감사 P4: 세로스택 시에만 화살표 ↓ */

/* ═══════════════════ 사례 상세 · 체험 = 인터랙티브 라이브 데모(대화 애니메이션 + 직접 질문) ═══════════════════ */
.cd-live{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 40px rgba(16,24,64,.05)}
.cd-live-h{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfcfe,#f5f7fc);flex-wrap:wrap}
.cd-live-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--navy);background:var(--red-soft);border-radius:999px;padding:6px 13px}
.cd-live-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--navy);animation:svcpulse 2s infinite}
.cd-live-sub{font-size:13px;color:var(--muted)}
.cd-live-log{padding:22px 20px;display:flex;flex-direction:column;gap:14px;min-height:230px;max-height:52vh;overflow-y:auto;background:#fcfcfe;scroll-behavior:smooth}
.cd-live-log .cd-turn{margin-bottom:0}
#cdLiveChips{padding:2px 20px 6px}
#cdLiveChips:empty{display:none}
.cd-live-input{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--line)}
.cd-live-input input{flex:1;min-width:0;height:46px;border:1px solid var(--line);border-radius:12px;padding:0 15px;font-family:var(--font);font-size:14px;background:#fbfcfe;color:var(--ink)}
.cd-live-input input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12);background:#fff}
.cd-live-input .btn{height:46px;border-radius:12px;flex:none;padding:0 20px}
.cd-live-src{font-size:12px;color:var(--muted2);margin-top:8px;line-height:1.5}
.cd-proc-run{align-self:flex-start;display:flex;flex-wrap:wrap;gap:7px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;max-width:92%}
.cd-proc-run .ps{opacity:.38;transition:opacity .28s,color .28s,background .28s,border-color .28s}
.cd-proc-run .ps.on{opacity:1;background:var(--navy);color:#fff;border-color:var(--navy)}
@media(max-width:500px){.cd-live-log{max-height:60vh}.cd-live-input .btn{padding:0 15px}}

/* ═══════════════════ v22 A2 색 정본 — 본문 강조=레드 복원 / 나브·푸터·카드 구조=네이비 유지 (정본 squad_atlas_v22.html) ═══════════════════ */
:root{--ac:#18296e;--ac-d:#ffffff;--ac-deep:#101f52}
/* 히어로 H1 강조 = 밝은 레드(다크 위 팝) */
.hero h1 .ac,.hero-in h1 .ac{color:var(--ac-d);-webkit-text-fill-color:var(--ac-d)}
.hero .hpill{border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.9)}
/* 1차 CTA(본문) = 레드 · 나브 CTA는 딥네이비 유지 */
.btn-red{background:var(--ac);color:#fff}.btn-red:hover{background:var(--ac-deep)}
.hero .cta .btn-red{background:var(--ac);border:0;box-shadow:0 10px 30px rgba(24,41,110,.42)}
.hero .cta .btn-red:hover{background:var(--ac-deep);border:0}
.nav-cta{background:var(--navy)}.nav-cta:hover{background:#101f52}
/* 키커 = 레드 */
.kicker{color:var(--ac)}
/* 활성 탭 · 선택 칩 = 레드 (나브 링크는 네이비 유지) */
.chip.active{background:var(--ac);border-color:var(--ac);color:#fff}
.chip:hover{border-color:var(--ac);color:var(--ac)}
.qbtn:hover{border-color:var(--ac);color:var(--ac)}
.pf-chip.on{background:var(--ac);border-color:var(--ac);color:#fff}
.pf-chip:hover{border-color:var(--ac)}
.ws-role button.active{background:var(--ac);color:#fff}
.ws-maintabs button.active{color:var(--ac);border-bottom-color:var(--ac)}
.cd-tabs button.active{color:var(--ac);border-bottom-color:var(--ac)}
.detail-tabs button.active{color:var(--ac);border-bottom-color:var(--ac)}
.adm-sub button.on{color:var(--ac);border-bottom-color:var(--ac)}.adm-sub button:hover{color:var(--ac)}
.ap-step.active{background:var(--ac);border-color:var(--ac)}.ap-step.active .apn{background:rgba(0,0,0,.16)}
.ap-chip.on{background:var(--ac);border-color:var(--ac);color:#fff}.ap-chip:hover{border-color:var(--ac);color:var(--ac)}
.car-dots button.on{background:var(--ac)}
.car-arrow:hover{border-color:var(--ac);color:var(--ac);box-shadow:0 10px 30px rgba(24,41,110,.2)}
.asst-chip:hover{background:var(--ac);border-color:var(--ac)}
.asst-chip.alt:hover{background:var(--ac);border-color:var(--ac);color:#fff}
/* 액션 아이콘 · 영상 재생 = 레드 */
.cd-play{background:rgba(24,41,110,.95);border:1px solid rgba(255,255,255,.22)}
.ai-mini{color:var(--ac);border-color:var(--ac)}.ai-mini:hover{background:var(--ac);color:#fff}
.ai-badge{background:var(--ac)}
.mact.danger:hover{border-color:var(--ac);color:var(--ac)}
/* 과부하 바 = 레드 (지연 KPI·경고 배지는 앰버 유지) */
.bar-fill.over{background:var(--ac)}
/* ★ 나브 바 · 푸터 = 네이비/현행 유지(v22 A2 예외) */
.nav-links a:hover,.nav-links a.active{color:var(--navy)}
.nav.dark .nav-links a:hover,.nav.dark .nav-links a.active{color:#fff}
.nav-ico:hover{color:var(--navy)}.nav.dark .nav-ico:hover{color:#fff}
.nav-login:hover{color:var(--navy);border-color:var(--navy)}.nav.dark .nav-login:hover{color:#fff;border-color:#fff}
.nav-util-in a:hover,.nav-user button:hover{color:var(--navy)}

/* ═══════════════════ B6 대시보드 필터 = 컴팩트 드롭다운(칩 나열식 폐기) ═══════════════════ */
.dash-filters2{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:22px;padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.dfl{display:inline-flex;flex-direction:column;gap:5px}
.dfl-l{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.02em}
.dfsel{height:36px;min-width:150px;border:1px solid var(--line);border-radius:8px;padding:0 32px 0 12px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--ink-soft);background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 10px center/15px;-webkit-appearance:none;appearance:none;cursor:pointer}   /* Medium 36 · radius 8(사장님 기본 버튼 규격) */
.dfsel:hover{border-color:var(--navy)}
.dfsel:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12)}
.dfl-reset{height:36px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;font-family:var(--font);font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}   /* Medium 36 · radius 8 */
.dfl-reset-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted2);cursor:pointer;flex:none}   /* 필터 리셋 아이콘(2026-07-26 사장님) */
.dfl-reset-ic:hover:not(:disabled){border-color:var(--red);color:var(--red)}
.dfl-reset-ic:disabled{opacity:.4;cursor:default}
/* 파이프 상태별 요약 — de-box 인라인 한 줄(2026-07-27 사장님 "간단하게") · dot·라벨·숫자·클릭 필터 */
.pipe-stat{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin:2px 0 18px;padding:0}
.ps-cell{display:inline-flex;align-items:center;gap:7px;background:transparent;border:0;padding:4px 0;cursor:pointer;font-family:var(--font)}
.ps-dot{width:9px;height:9px;border-radius:50%;flex:none}
.ps-l{font-size:14px;font-weight:500;color:var(--muted)}
.ps-n{font-size:14px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.ps-cell:hover .ps-l{color:var(--ink2)}
.ps-cell.on .ps-l{color:var(--navy);font-weight:700}.ps-cell.on .ps-n{color:var(--navy)}
.ps-active{background:var(--s-active-dot)}.ps-hold{background:var(--s-hold-dot)}.ps-prep{background:var(--s-idle-dot)}.ps-biz{background:var(--s-ok-dot)}   /* .ps-closed는 D4 종료토큰 규칙(하단)이 단일 소스 — 구 --s-stop-dot 규칙 제거(D5 H1) */
.dfl-reset:hover{border-color:var(--ac);color:var(--ac)}
@media(max-width:500px){.dash-filters2{gap:10px}.dfl{flex:1 1 46%}.dfsel{min-width:0;width:100%}}

/* D4 푸터 법적·운영주체·문의(15888 동일) */
.foot-legal{border-top:1px solid rgba(255,255,255,.1);margin-top:34px;padding-top:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:#8a93a6}
.foot-legal .foot-updated{color:#8b93a8}
footer .foot-legal+.foot-bar{border-top:0;margin-top:14px;padding-top:0}
footer .cols div a[data-act="policy"],footer .cols div a[data-act="terms"],footer .cols div a[data-act="footmail"]{cursor:pointer}

/* ④ FAQ 아코디언(15888 흡수·/api/organ/faq) */
.faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.faq-item{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;transition:border-color .15s}
.faq-item.open{border-color:var(--navy)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;background:none;border:0;cursor:pointer;font-family:var(--font);font-size:16px;font-weight:700;color:var(--ink);text-align:left;line-height:1.4}
.faq-q:hover{color:var(--navy)}
.faq-ic{position:relative;width:16px;height:16px;flex:none;margin-top:3px}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;background:var(--navy);border-radius:2px;transition:.2s}
.faq-ic::before{top:7px;left:0;width:16px;height:2px}
.faq-ic::after{top:0;left:7px;width:2px;height:16px}
.faq-item.open .faq-ic::after{transform:rotate(90deg);opacity:0}
.faq-a{padding:0 20px 20px}
.faq-a p{font-size:14px;color:var(--ink-soft);line-height:1.75;white-space:pre-line}   /* SA24 §D·P4: 편집자 개행 보존(설명↔행동요청 의미 단위 조판) */

/* ═══════════════════ P4-6 색 정책 확정(2026-07-22 2차 정비) — 레드 = 로고·1차 CTA 전용 ═══════════════════ */
/* 구 v22 "콘텐츠 강조 레드" 블록 폐기: 데이터·진행·강조 = 네이비 / 경고·지연 = 앰버(상태 전용). hover 레드는 유지. */
.bar-fill{background:var(--navy)}
.bar-fill.over{background:var(--amber)}
.fn-bar{background:linear-gradient(180deg,#2a3e7a,var(--navy))}
.pc-prog .db i,.pli .db i,.pc-prog i{background:var(--navy)}
.wbs-fill,.wbs-node.done .d{background:var(--navy)}
.load-bar i{background:var(--navy)}
.kc::before{background:var(--navy)}.kc.warn::before{background:var(--amber)}.kc.demo::before{background:var(--navy)}
.kc.demo .kc-n{color:var(--navy)}
.aq::before{background:var(--navy)}.aq.warn::before{background:var(--amber)}
.aq:hover{border-color:var(--red)}.aq.warn:hover{border-color:var(--amber)}
.aq:hover .aq-go{color:var(--red)}
.pb-count.on{background:var(--navy)}
.cmd-badge{color:var(--navy)}
.cmd-greet p b{color:var(--navy)}
.case-card .eff{color:var(--navy)}.case-card .eff::before{background:var(--navy)}
.aq.navy::before{background:var(--navy)}
.am-case-eff,.am-case-sec{color:var(--navy)}
.arch-node.out{background:var(--navy);border-color:var(--navy)}
.arch-core-dot,.arch-agent .ad{background:var(--navy)}
.arch-chip.model{color:var(--navy)}
.cd-stat .v,.slide-stats .st .v,.tc-fig{color:var(--navy)}
.pipe-list .pli.sel{border-color:var(--navy);border-left-color:var(--navy)}
.pc-stg.run{background:var(--s-active-bg);color:var(--s-active-tx)}   /* 중복 정의 → 단일 시맨틱(active)으로 수렴 */

/* ═══════════════════ 관리자 대시보드 재설계 (workspace_redesign_mockup.html 1:1 이식) ═══════════════════ */
/* 색 시스템: 레드=브랜드·CTA / 틸=데이터 / 그린=정상 / 앰버=경고 / 그레이 뉴트럴 · 네이비 미사용 */
:root{
  --teal:#18296e;--teal-deep:#101f52;--teal-soft:#eef1f8;
  --ok:#167a00;--ok-soft:#e5f5e1;--warn2:#9d4f00;--warn-soft:#fff3e5;
  --n0:#fff;--n50:#f3f4f6;--n100:#e9eaee;--n200:#c7cad1;--n300:#adb1b9;--n400:#8b8f97;--n500:#686c74;--n600:#55585d;--n700:#3d3f43;
}
#wsDash{font-size:14px;line-height:1.5}
#wsDash .d-phead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
#wsDash .d-phead--filters{justify-content:space-between;align-items:center;margin-bottom:22px}   /* 인사말(좌) + 필터(우) */
#wsDash .d-phead--action{justify-content:space-between;align-items:center;margin-bottom:22px}   /* 인사말(좌) + 전체관제(우) */
#wsDash .d-greet-s{font-size:14px;color:var(--muted);margin-top:5px;line-height:1.5}   /* 인사말 부제(2026-07-26 사장님) */
#wsDash .d-phead h2{font-family:var(--font-title);font-size:23px;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}   /* 인사말(큰 멘트) = KT flow(2026-07-26 사장님) */
#wsDash .d-kick{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--n500)}
#wsDash .d-sub{font-size:13px;color:var(--n600);margin-top:6px}
#wsDash .d-cta{height:36px;min-height:36px;border:none;border-radius:8px;background:var(--red);color:#fff;font-weight:600;font-size:14px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;font-family:var(--font);cursor:pointer}   /* Medium 36·radius8·Pretendard(2026-07-26) */
#wsDash .d-cta:hover{background:var(--red-deep)}
/* 헤더 우측 인라인 필터(접수함 버튼 자리) — 3개 일자·박스 폐기·라벨 숨김(2026-07-26) */
#wsDash .d-phead-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#wsDash .d-phead-filters .dfl{flex-direction:row}
#wsDash .d-phead-filters .dfl-l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}   /* select 첫 옵션 "○○ 전체"가 라벨 역할 · 스크린리더용 유지 */
/* 시그널 스트립(액션 KPI 4) */
#wsDash .d-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
#wsDash .d-stat{background:var(--n0);border:1px solid var(--n100);border-radius:8px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;text-align:left;position:relative;font-family:var(--font)}
#wsDash button.d-stat{cursor:pointer;transition:.15s}#wsDash button.d-stat:hover{border-color:var(--n200);box-shadow:0 4px 14px rgba(16,24,64,.05)}
#wsDash .d-stat .n{font-family:var(--mono);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--ink)}
#wsDash .d-stat .l{font-size:14px;color:var(--n700);font-weight:600}
#wsDash .d-stat.warn{background:var(--s-warn-bg);border-color:var(--s-warn-dot)}#wsDash .d-stat.warn .n{color:var(--s-warn-tx)}   /* KPI 연장 = warn */
#wsDash .d-stat.ok .n{color:var(--s-ok-tx)}   /* KPI 본사업 전환 = ok */
/* KPI 숫자 상태색(숫자만·카드 배경 무변경·2026-07-26 사장님) — 상태 6버킷 정본 */
#wsDash .d-stat.n-total .n{color:var(--navy)}      /* 내 배정 과제(총계) = 프라이머리 네이비 */
#wsDash .d-stat.n-active .n{color:var(--s-active-tx)}  /* 진행중 = active */
#wsDash .d-stat.n-warn .n{color:var(--s-warn-tx)}      /* 연장 진행 = warn */
#wsDash .d-stat.n-ok .n{color:var(--s-ok-tx)}          /* 본사업 전환 = ok */
#wsDash .d-stat.n-hold .n{color:var(--s-hold-tx)}      /* 고객사 대기 = hold */
#wsDash .d-stat .bdg{position:absolute;top:14px;right:14px;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--warn2);background:#fbe6cf;border-radius:999px;padding:2px 8px}
#wsDash .d-stat .ar{position:absolute;bottom:14px;right:16px;color:var(--muted2);font-size:13px}
/* AI 요약 */
#wsDash .d-brief{background:var(--n0);border:1px solid var(--n100);border-radius:8px;padding:16px 20px;margin-bottom:24px}
#wsDash .d-brief-h{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
#wsDash .d-brief-tag{font-family:var(--font);font-size:11px;font-weight:800;letter-spacing:0;color:var(--navy);background:var(--red-soft);border-radius:8px;padding:3px 9px}   /* 뱃지 통일: Mono→Pretendard·radius8 */
#wsDash .d-brief-t{font-size:14px;font-weight:700;color:var(--ink)}
#wsDash .d-brief-note{font-size:12px;color:var(--n500)}
#wsDash .d-bi{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--n50);font-size:13px;color:var(--n700);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;font-family:var(--font);cursor:pointer}
#wsDash .d-bi:first-of-type{border-top:none}
#wsDash .d-bi .ic{width:22px;height:22px;border-radius:8px;background:var(--n50);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--n500);flex:none}
#wsDash .d-bi .ar{margin-left:auto;color:var(--muted2)}
#wsDash .d-bi.crit .ic{background:var(--red-soft);color:var(--red-deep)}
/* 2x2 */
#wsDash .d-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px} /* PT2: 1fr=min-content 바닥 → 390 오버플로 교정 */
#wsDash .d-card{min-width:0}
#wsDash .d-card{background:var(--n0);border:1px solid var(--n100);border-radius:8px;padding:18px 20px}
#wsDash .d-ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
#wsDash .d-ch h3{font-size:14px;font-weight:700;color:var(--ink)}
#wsDash .d-ch a{font-size:12px;color:var(--n600);cursor:pointer}
#wsDash .d-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
#wsDash .d-mb{background:var(--n50);border-radius:8px;padding:10px 8px;text-align:center}
#wsDash .d-mb .n{font-family:var(--mono);font-size:20px;font-weight:700;color:var(--ink)}
#wsDash .d-mb .l{font-size:11px;color:var(--n500)}
#wsDash .d-mb.crit{background:var(--s-warn-bg)}#wsDash .d-mb.crit .n{color:var(--s-warn-tx)}   /* KPI 미니 위험 = warn */
#wsDash .d-mrow{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--n50);font-size:14px;line-height:1.5}
#wsDash .d-mrow:first-of-type{border-top:none}
#wsDash .d-mrow .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--n700)}
#wsDash .d-mrow .num{font-family:var(--mono);font-size:12px;color:var(--n600)}
#wsDash .d-badge{font-size:12px;font-weight:700;border-radius:8px;padding:3px 9px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}   /* XSmall 12px 통일 */
#wsDash .d-badge.stage{background:var(--s-active-bg);border:0;color:var(--s-active-tx)}   /* 진행중 = active */
#wsDash .d-badge.stage .d{width:5px;height:5px;border-radius:50%;background:var(--s-active-dot)}
#wsDash .d-badge.delay{background:var(--s-warn-bg);color:var(--s-warn-tx)}   /* 지연 = warn */
#wsDash .d-badge.biz{background:var(--s-ok-bg);color:var(--s-ok-tx)}   /* 본사업 전환/완료 = ok */
#wsDash .d-badge.idle{background:var(--s-idle-bg);color:var(--s-idle-tx)}   /* 미착수/준비 = idle */
#wsDash .d-badge.drop{background:var(--s-stop-bg);color:var(--s-stop-tx)}   /* Drop = stop */
#wsDash .d-todo{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--n50);font-size:13px;width:100%;background:none;border:0;text-align:left;font-family:var(--font);cursor:pointer;color:var(--n700)}
#wsDash .d-todo:first-of-type{border-top:none}
#wsDash .d-todo .cnt{font-family:var(--mono);font-weight:700;color:var(--warn2);min-width:20px}
#wsDash .d-todo .ar{margin-left:auto;color:var(--muted2)}
/* 분포·부하 = 얇은 막대·조밀한 행(2026-07-26 사장님 — 세로 공간 축소·비교 시각 유지) */
#wsDash .d-dist{display:flex;align-items:center;gap:12px;padding:4px 0;font-size:13px}
#wsDash .d-dist .nm{width:72px;color:var(--n700);flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#wsDash .d-dist .bar{flex:1;height:4px;background:var(--n100);border-radius:999px;overflow:hidden}
#wsDash .d-dist .bar>i{display:block;height:100%;background:var(--teal);border-radius:999px}
#wsDash .d-dist .bar>i.over{background:var(--warn2)}
#wsDash .d-dist .v{font-family:var(--mono);font-size:12px;color:var(--n600);min-width:26px;text-align:right;flex:none;white-space:nowrap}
#wsDash .d-empty{padding:16px 0;font-size:13px;color:var(--n500);text-align:center}
#wsDash .d-more{display:block;width:100%;margin-top:8px;padding:10px 0;border:0;border-top:1px solid var(--n50);background:none;font-family:var(--font);font-size:13px;font-weight:600;color:var(--n600);cursor:pointer}   /* 외 N건 펼침 토글 */
#wsDash .d-more:hover{color:var(--red)}
@media(max-width:1024px){#wsDash .d-strip{grid-template-columns:repeat(2,1fr)}#wsDash .d-grid2{grid-template-columns:minmax(0,1fr)}#wsDash .d-phead h2{font-size:21px}}

/* ═══════════════════ 워크스페이스 데이터 톤 통일 = 틸(대시보드 목업과 일치) · 공개 사이트는 레드 유지 ═══════════════════ */
/* 파이프라인 상태 배지: 진행중=틸 · 본사업=그린 · 진척바=틸 */
.pc-stg.run{background:var(--s-active-bg);color:var(--s-active-tx)}
.pc-stg.biz,.pc-stg.done{background:var(--s-ok-bg);color:var(--s-ok-tx)}   /* 중복 → 시맨틱 수렴(active·ok) */
.pc-prog .db i,.pli .db i{background:var(--teal)}
.pipe-list .pli.sel{border-color:var(--teal);border-left-color:var(--teal)}
.pcard.open{border-color:var(--teal)}
/* WBS 스텝퍼 톤 정합(2026-07-26): 완료=teal(로드맵과 동일) · 현재=navy 링 · 레일=teal */
.wbs-fill{background:var(--teal)}
.wbs-node.done .d{background:var(--teal);border-color:var(--teal)}
.wbs-node.cur .d{background:#fff;border-color:var(--navy);box-shadow:0 0 0 4px rgba(24,41,110,.14)}
.wbs-node.cur .lb{color:var(--navy);font-weight:700}
.wbs-node .lb{font-size:12px}
.wbs-task .s.d{background:var(--teal-soft);color:var(--teal-deep)}
/* 산출물 완료 점 = 틸 · 상태 배지 활성 = 그린 */
.del-row .dot.g{background:var(--teal)}
.badge-s.bs-on{background:var(--s-ok-bg);color:var(--s-ok-tx)}.badge-s.bs-on::before{background:var(--s-ok-dot)}   /* 중복 → 시맨틱 수렴(ok) */
.rule .ok{color:var(--teal)}
/* 인력 명부 부하 바 = 틸(데이터) */
.load-bar i{background:var(--teal)}
/* 커스텀 관리 토글 활성·업로드는 레드(액션) 유지 · 탭 활성 레드 유지 */

/* ═══════════════════ 고객사 로고월 = 2줄·반대방향·컬러 실 로고(aible 벤치) ═══════════════════ */
.logo-rows{display:flex;flex-direction:column;gap:34px}
.logo-track{align-items:center;gap:56px}
.logo-track.rev{animation-direction:reverse}          /* 둘째 줄 = 반대 방향 스크롤 */
.lm-i{display:inline-flex;align-items:center;justify-content:center;height:42px;flex:none}
.lm-logo{height:30px;width:auto;max-width:152px;object-fit:contain;opacity:1;transition:transform .25s}  /* 컬러 그대로 */
.lm-i:hover .lm-logo{transform:scale(1.06)}
.lm-word{font-size:18px;font-weight:800;color:#8a8f99;letter-spacing:-.3px;white-space:nowrap}
/* 헤딩 = 약간만 키움 */
.logo-head{font-size:14px;font-weight:600;color:var(--muted2);letter-spacing:.03em;margin-bottom:22px}
/* 히어로 = 거의 그대로(티 안 나게 아주 살짝만) · 로고월을 위로 당겨 흰 여백 축소 */
.hero-in{padding:48px 24px}   /* 100vh 히어로 중앙정렬 — 대칭 패딩(flex center) */
/* (구 중복 .hero h1 60px 제거 — 반응형 램프가 먹도록. 램프는 @1024/@768/@500) */
.hero .hchips{margin-top:48px;padding-top:26px}
.logo-band{margin-top:0}   /* 패딩은 .logo-band 정의(52px 0)로 일원화 */   /* 100vh 히어로 밑에서 깔끔히 시작(음수마진 -66 제거 — 히어로 안으로 끌려올라오던 것 해소) */
.logo-rows{gap:20px}
@media(max-width:500px){.hero-in{padding:40px 20px}.hero h1{font-size:30px;line-height:1.22}.hero .cta{flex-direction:column;align-items:stretch}.logo-band{margin-top:0}.logo-rows{gap:14px}}

/* 프로그램 진행방식 스텝퍼 번호 = 흰색(네이비 원 위 회색 숫자 가독성 버그 수정 — .pg-step span 특이도 역전) */
.pg-step .pg-step-n{color:#fff}

/* 고객사명 강조(사례 카드·캐러셀) — 조금 더 도드라지게 */
.case-card .cust{font-size:15px;font-weight:800;letter-spacing:-.3px;color:var(--navy)}
.case-card .cust::before{width:6px;height:6px}
.slide-img .cust{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;font-size:14px;font-weight:700;padding:7px 13px;letter-spacing:-.3px}   /* 카드 안 고객사명 14px·Pretendard (사장님) */
.am-case-nm{font-size:16px}

/* GAP-1/G14 · 개요 편집 폼 — 사례 노출 문구 전체 편집(관리자·담당 PM) */
.ce-form{display:flex;flex-direction:column;gap:14px;padding-top:4px}
.ce-note{font-size:15px;color:var(--ink2);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 14px;line-height:1.5}
.ce-note b{color:var(--navy);font-weight:700}
/* 섹션 = 라인 없이 여백+제목으로 구분. 섹션 내 블록은 일괄 간격 규칙(개별 margin 패치 금지·2026-07-26). */
.ce-sec{padding-top:24px}
.ce-sec>*+*{margin-top:18px}   /* 헤더→grid→회의록→Hold 등 모든 블록 동일 간격 */
.ce-sh{font-size:18px;font-weight:700;color:var(--navy);margin:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:9px}
.ce-hint{font-size:14px;font-weight:500;color:var(--muted2);line-height:1.55}   /* 필드 설명·안내 14px(2026-07-26 사장님) */
.ce-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.ce-f{display:flex;flex-direction:column;gap:6px}
.ce-f-full{grid-column:1/-1}   /* 개발 등 전폭 필드 — 그리드 gap 으로 위와 간격 확보(붙음 해소) */
.ce-f label{font-size:14px;font-weight:600;color:var(--ink2)}
.ce-lopt{font-weight:500;color:var(--muted2)}
/* 입력 = 편집 가능하게(리드온리처럼 안 보이게) — 또렷한 테두리 + 포커스 강조 */
.ce-in{height:40px;padding:0 12px;font-size:15px;font-family:var(--font);color:var(--ink);background:#fff;border:1px solid var(--line-strong,#c9ccd4);border-radius:8px;width:100%;transition:border-color .12s,box-shadow .12s}
.ce-in:hover{border-color:var(--navy)}
.ce-in:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12)}
.ce-in[readonly]{background:var(--panel);color:var(--muted2);border-color:var(--line);cursor:default}
.ce-in[readonly]:hover{border-color:var(--line)}
/* 셀렉트 커스텀 화살표(네이티브 화살표 잘림·붙음 해소) */
select.ce-in{cursor:pointer;-webkit-appearance:none;appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2359616e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
/* 그룹 = 구역 헤더(고객 노출 vs 내부 운영) — 위에 경계선 하나만(이중 디바이더 제거). */
.ce-group{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:26px;border-top:1px solid var(--line);font-size:14px;font-weight:800;color:var(--ink);letter-spacing:.01em}
.ce-group span{font-size:14px;font-weight:500;color:var(--muted2)}   /* 섹션 설명 14px(2026-07-26 사장님) */
.ce-form>.ce-group:first-of-type{border-top:0;padding-top:12px;margin-top:0}
.ce-group + .ce-sec{padding-top:14px}   /* 그룹 라벨 바로 아래 섹션 = 여백 축소(간격 이중 방지) */
/* 성과 지표 컬럼 헤더 */
.ce-stat-head{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px;margin-bottom:6px;font-size:14px;font-weight:600;color:var(--muted2)}
.ce-stat-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px;margin-bottom:8px}
/* 진행 상태 배너 — 시스템 상태색 토큰 사용(대기중=hold). 좌측 두꺼운 보더 금지·필은 상태 배지와 동일 규칙. */
.ce-status{padding:11px 14px;border-radius:8px;background:var(--s-idle-bg);color:var(--s-idle-tx);font-size:14px;font-weight:600;line-height:1.5}
.ce-status b{font-weight:700}
.ce-status.hold{background:var(--s-hold-bg);color:var(--s-hold-tx)}
.ce-status.warn{background:var(--s-warn-bg);color:var(--s-warn-tx)}
.ce-st-ext{font-weight:700}
.ce-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:16px;margin-top:2px;border-top:1px solid var(--line)}   /* 저장 = 흐름상 오른쪽(2026-07-26 사장님) */
.ce-actions .sv{height:40px;padding:0 26px;font-size:14px;font-weight:700;color:#fff;background:var(--navy);border:0;border-radius:8px;cursor:pointer;font-family:var(--font)}
.ce-actions .sv:hover{background:var(--navy-deep)}
.ce-actions .sv[disabled]{opacity:.6;cursor:default}
.ai-cap{font-size:12px;color:var(--muted2);margin-top:6px}
@media (max-width:768px){.ce-grid{grid-template-columns:1fr}.ce-stat-row{grid-template-columns:1fr}.ce-stat-head{display:none}.ce-acc-h .ce-hint{display:none}}   /* 모바일: 아코디언 힌트·지표 헤더 숨김(1열 스택) */

/* GAP-4/G8 · PM(내 담당) 대시보드 — 본인 배정 사례 리스트 + 사례별 다이렉트 액션 */
/* 내 담당 = de-box 리스트(파이프라인 리스트와 통일·2026-07-26 사장님) */
.pm-list{display:flex;flex-direction:column;margin-top:8px}
.pm-row{display:flex;align-items:center;gap:16px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:15px 6px;cursor:pointer;font-family:var(--font)}
.pm-row:first-child{border-top:0}
.pm-row:hover{background:var(--panel)}
.pm-row-main{flex:1;min-width:0}
.pm-row-t{font-family:var(--font-title);font-weight:700;font-size:16px;letter-spacing:-.2px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-row:hover .pm-row-t{color:var(--red)}
.pm-row-sub{font-size:13px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-row-prog{display:flex;align-items:center;gap:10px;flex:none;width:230px}
.pm-row-prog .db{flex:1;height:5px;background:var(--panel);border-radius:999px;overflow:hidden}
.pm-row-prog .db i{display:block;height:100%;background:var(--navy);border-radius:999px}
.pm-row-dl{font-size:12px;color:var(--muted);font-family:var(--font);white-space:nowrap}
@media(max-width:768px){.pm-row{flex-wrap:wrap;gap:10px}.pm-row-prog{width:100%}}

/* ═══ G13/A2 최종 톤 — 네이비 지배 + 레드 포인트(로고 #EC193A + 1차 CTA #e0263a). 구조·데이터·활성·칩·바 = 네이비 유지 ═══ */
:root{--cta:#e0263a;--cta-deep:#c11f30}
.btn-red{background:var(--cta);color:#fff}
.btn-red:hover{background:var(--cta-deep)}   /* 호버 = 레드 700(진해짐)만 · 블러(box-shadow) 제거 (사장님) */
.hero .cta .btn-red{background:var(--cta);border:0;box-shadow:none}   /* 블러 제거 — 헤더 CTA처럼 색만(호버 시 --cta-deep) */
.hero .cta .btn-red:hover{background:var(--cta-deep);border:0}
/* G1(a) 히어로 키커 = 테두리 제거, 텍스트만 / G1(c) 통계행 소폭 확장 */
.hero .hpill{border:0;padding:0;color:rgba(255,255,255,.92);font-weight:600}   /* 보더 제거 — 플레인 텍스트 (사장님) */
.hero .hchips{gap:20px}

/* G15 · 대시보드 드릴다운 — 클릭 가능 KPI/퍼널/멤버 + 필터 배너 */
#wsDash .d-mb{font:inherit;text-align:center;border:1px solid var(--line);background:#fff;cursor:pointer;transition:.15s}
#wsDash .d-mb:hover{border-color:var(--navy);box-shadow:0 4px 14px rgba(24,41,110,.12)}
#wsDash button.d-dist{width:100%;font:inherit;border:0;background:none;cursor:pointer;text-align:left;padding:5px 6px;border-radius:8px;transition:.12s}
#wsDash button.d-dist:hover{background:var(--panel)}
.pf-banner{display:flex;align-items:center;gap:10px;background:#eef1f8;border:1px solid var(--navy);border-radius:12px;padding:10px 14px;margin:0 0 16px;font-size:14px;color:var(--navy)}
.pf-banner b{font-weight:700}
.pf-banner .pf-x{margin-left:auto;height:30px;padding:0 12px;font-size:12px;font-weight:600;font-family:var(--font);color:#fff;background:var(--navy);border:0;border-radius:8px;cursor:pointer}
.pf-banner .pf-x:hover{background:var(--navy-deep)}

/* G6 · 모바일/스택 캐러셀 — 이미지 패널 붕괴(절대배치 cart/cust/stag 겹침) 방지: 스택 시 이미지 min-height */
@media(max-width:1024px){
  .slide-card{min-height:0}
  .slide-img{min-height:220px}
  .slide-img .cart{position:absolute;inset:0;width:100%;height:100%}
}
@media(max-width:500px){ .slide-img{min-height:190px} }

/* C · 전 기기 로그아웃 = 핸들러/엔드포인트(D.logoutAll·doLogoutAll)는 dormant 유지, 상단 노출 버튼은 제외(사용자 요청) */

/* ★ AI 전체 채우기 패널 (개요 편집) */
/* AI 채움 = 과제 정의 탭의 핵심 액션. 색 박스 폐기(2026-07-26) — 헤어라인 구획 + 강한 제목 + 네이비 버튼으로 위계. */
.ce-ai{background:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:16px 0 4px;margin:0}
/* 헤더 = 타이틀+설명(좌) · 실행 버튼(우) 한 줄(2026-07-26 사장님) */
.ce-ai-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.ce-ai-h{display:flex;flex-direction:column;gap:3px}
.ce-ai-t{font-size:18px;font-weight:800;color:var(--navy);letter-spacing:-.01em}
.ce-ai-btn{flex:0 0 auto;height:36px;padding:0 18px;font-size:14px;font-weight:700;font-family:var(--font);color:#fff;background:var(--navy);border:0;border-radius:8px;cursor:pointer;transition:.15s;white-space:nowrap}
.ce-ai-btn:hover{background:var(--navy-deep)}
.ce-ai-btn[disabled]{opacity:.6;cursor:default}
.ce-ai-status:not(:empty){margin-top:10px;font-size:13px;color:var(--muted2);line-height:1.4}
.ce-ai-status.ok{color:#1f7a4d;font-weight:600}
.ce-ai-status.warn{color:var(--amber);font-weight:600}
.ce-in.ce-aifilled,.txtarea.ce-aifilled{border-color:#4a5da8;background:#f6f8fe;animation:aiflash 1.1s ease}
@keyframes aiflash{0%{background:#dbe6ff}100%{background:#f6f8fe}}
.ce-savehint{font-size:12px;color:var(--muted2)}

/* ═══ 정본 완전일치: 스쿼드 둘러보기 챗봇 형상 = chatbar + qbtn (뒤단은 멀티턴 LLM) ═══ */
.chatbar{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.chatbar input{flex:1;min-width:280px;height:52px;border:1px solid var(--line);padding:0 18px;font-family:var(--font);font-size:15px;background:#fff;border-radius:12px;color:var(--ink)}
.chatbar input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.1)}
.chatbar .btn{border-radius:12px;white-space:nowrap;padding:0 24px}
.chatbar-q{margin-top:10px}
.qbtn{padding:9px 16px;font-size:13px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink2);border-radius:8px;font-family:var(--font);min-height:44px;transition:.15s}
.qbtn:hover{border-color:var(--cta);color:var(--cta)}
.asst-convo{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 16px 6px;box-shadow:0 6px 22px rgba(16,24,64,.06)}
.asst-convo .asst-log{max-height:none;min-height:0}

/* #6 대시보드 가독성 — 전반 글씨 상향(그리드·얼라인 유지) */
#wsDash .d-stat{padding:18px 20px}
#wsDash .d-stat .n{font-size:30px}   /* KPI 숫자 34→30 — 인사말 축소와 함께 데이터 포커스 균형 */
#wsDash .d-stat .l{font-size:15px;font-weight:700}
#wsDash .d-stat .bdg{font-size:11px;top:16px;right:16px}
#wsDash .d-brief{padding:18px 22px}
#wsDash .d-brief-tag{font-size:11px}
#wsDash .d-brief-t{font-size:16px}
#wsDash .d-brief-note{font-size:13px}
#wsDash .d-bi{font-size:14px;padding:11px 0}
#wsDash .d-bi .ic{width:24px;height:24px;font-size:13px}
#wsDash .d-card{padding:20px 22px}
#wsDash .d-ch h3{font-size:16px}
#wsDash .d-ch a{font-size:13px}
#wsDash .d-mb{padding:12px 8px}
#wsDash .d-mb .n{font-size:26px}
#wsDash .d-mb .l{font-size:12px}
#wsDash .d-mrow{font-size:14px;padding:9px 0}
#wsDash .d-mrow .num{font-size:14px}
#wsDash .d-todo{font-size:14px;padding:11px 0}
#wsDash .d-todo .cnt{font-size:15px}
#wsDash .d-dist{font-size:14px;padding:7px 0}
#wsDash .d-dist .nm{width:88px}
#wsDash .d-dist .v{font-size:14px}
#wsDash .d-phead .d-sub{font-size:14px}
#wsDash .d-kick{font-size:12px;letter-spacing:.08em}
#wsDash .d-badge{font-size:12px}

/* WBS 태스크 편집(14888 흡수) */
/* 주차별 태스크 = 박스 폐기·헤어라인·톤 정합(2026-07-26). 제목 18, 본문 15, 셀렉트 커스텀 화살표. */
.wbs-tasks{margin-top:24px}
.wbs-tasks-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:9px;margin-bottom:6px}
.wbs-tasks-h b{font-size:18px;color:var(--navy);font-weight:700}
.wbs-hint{font-size:12px;color:var(--muted2)}
.wbs-trow{display:flex;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px solid var(--panel)}
.wbs-trow:last-child{border-bottom:0}
.wbs-tn{flex:1;font-size:15px;color:var(--ink);min-width:0}
.wbs-st-sel{height:34px;padding:0 30px 0 10px;font-size:13px;font-family:var(--font);border:1px solid var(--line-strong,#c9ccd4);border-radius:8px;background:#fff;cursor:pointer;color:var(--ink);-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%2359616e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.wbs-st{font-size:12px;font-weight:500;padding:4px 10px;border-radius:8px;white-space:nowrap}
.wbs-st.s-todo{background:var(--s-idle-bg);color:var(--s-idle-tx)}.wbs-st.s-in_progress{background:var(--s-active-bg);color:var(--s-active-tx)}.wbs-st.s-blocked{background:var(--s-warn-bg);color:var(--s-warn-tx)}.wbs-st.s-done{background:var(--s-ok-bg);color:var(--s-ok-tx)}   /* WBS: todo=idle·진행=active·blocked=warn·done=ok */
.wbs-del{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:none;color:var(--muted2);cursor:pointer;font-size:13px;flex:none}
.wbs-del:hover{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.wbs-add{display:flex;gap:8px;margin-top:18px}
.wbs-add-in{flex:1;height:40px;padding:0 12px;font-size:15px;font-family:var(--font);border:1px solid var(--line-strong,#c9ccd4);border-radius:8px;background:#fff;color:var(--ink)}
.wbs-add-in:hover{border-color:var(--navy)}
.wbs-add-in:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.12)}
.wbs-add-btn{height:36px;padding:0 16px;font-size:14px;font-weight:700;font-family:var(--font);color:#fff;background:var(--navy);border:0;border-radius:8px;cursor:pointer;white-space:nowrap;align-self:center}
.wbs-add-btn:hover{background:var(--navy-deep)}
/* 모바일: 태스크 행·추가 행 = 제목 한 줄 + 컨트롤 다음 줄(넘침 방지) */
@media(max-width:768px){.wbs-trow{flex-wrap:wrap;gap:8px 10px}.wbs-tn{flex:1 1 100%}.wbs-st-sel,.wbs-wk-sel{flex:1 1 auto;max-width:none}.wbs-add{flex-wrap:wrap}.wbs-add-in{flex:1 1 100%}.wbs-add-btn{flex:1 1 auto}}

/* 섹터 분포 카드 — 임원용 시각화 */
#wsDash .d-secrow .bar i{background:var(--navy)}
#wsDash .d-secrow .nm{width:96px}

/* WBS 14888식 — 현재 주차 배너 + 주차별 그룹 태스크 */
/* 현재 진행 주차 = 배너 박스 폐기(2026-07-26 사장님) → 담백한 한 줄. */
.wbs-now{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:0 0 14px;margin-bottom:16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.wbs-now-l{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.wbs-now-k{font-size:12px;font-weight:600;color:var(--muted2)}
.wbs-now-v{font-size:18px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.wbs-now-r{display:flex;align-items:baseline;gap:2px}
.wbs-now-prog{font-size:14px;font-weight:600;color:var(--muted)}
/* 주차 그룹 = 박스 폐기 → 헤어라인 구획(산출물 로드맵과 동일). */
.wbs-wkgroup{border-bottom:1px solid var(--line);padding:14px 0}
.wbs-wkgroup:last-child{border-bottom:0}
.wbs-wkh{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:10px}
.wbs-wknow{font-size:12px;font-weight:600;color:var(--s-active-tx);background:var(--s-active-bg);border-radius:8px;padding:2px 9px}
.wbs-wkc{margin-left:auto;font-size:14px;font-weight:500;color:var(--muted);font-family:var(--font)}
.wbs-wk-sel{height:34px;padding:0 30px 0 10px;font-size:13px;font-family:var(--font);border:1px solid var(--line-strong,#c9ccd4);border-radius:8px;background:#fff;cursor:pointer;color:var(--ink);max-width:130px;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%2359616e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
#wsDash .d-secunset{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:12px;color:var(--muted2)}

/* 14888 흡수 — 단계별 현황 스택 바 + 전폭 카드 */
#wsDash .d-full{grid-column:1/-1;margin-bottom:20px}   /* 아래 그리드와 간격(붙어있던 문제 해소·2026-07-26 사장님) */
#wsDash .d-ch-sub{font-size:12px;color:var(--muted2)}
#wsDash .d-stackbar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--panel);margin:4px 0 16px}   /* 26→8px 얇게(2026-07-26 사장님) */
#wsDash .d-seg{height:100%;border:0;cursor:pointer;transition:filter .15s;min-width:4px}
#wsDash .d-seg:hover{filter:brightness(1.12)}
#wsDash .d-seglegend{display:flex;flex-wrap:wrap;gap:8px 18px}
#wsDash .d-legi{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink2);background:none;border:0;cursor:pointer;font-family:var(--font);padding:2px 0}
#wsDash .d-legi:hover{color:var(--navy)}
#wsDash .d-legi .dot{width:11px;height:11px;border-radius:2px;flex:none}
#wsDash .d-legi b{font-weight:700;color:var(--ink)}

/* 파이프라인 카드 주차 타임라인(14888 흡수) — 팀장이 카드만 봐도 몇 주차인지 즉시 파악 */
.ws-strip{padding:11px 16px 13px;border-top:1px solid var(--line);background:#fafbfd}
.ws-strip.pre{background:#f6f7f9}
.ws-lab{font-size:12px;color:var(--ink2);margin-bottom:9px}
.ws-lab b{color:var(--navy);font-weight:700}
.ws-strip.pre .ws-lab{color:var(--muted2)}
.ws-track{display:flex;align-items:flex-start;justify-content:space-between;position:relative}
.ws-track::before{content:"";position:absolute;left:5%;right:5%;top:6px;height:2px;background:var(--line)}
.ws-node{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;position:relative;z-index:1}
.ws-node i{width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid #cfd6e4}
.ws-node em{font-size:10px;color:var(--muted2);font-style:normal;font-weight:600}
.ws-node.done i{background:var(--navy);border-color:var(--navy)}
.ws-node.done em{color:var(--ink2)}
.ws-node.late i{background:var(--amber);border-color:var(--amber)}
.ws-node.late em{color:var(--amber);font-weight:700}
.ws-node.cur.done i{box-shadow:0 0 0 4px rgba(24,41,110,.16)}
.ws-node.cur.done em{color:var(--navy);font-weight:800}
.ws-node.cur.late i{box-shadow:0 0 0 4px rgba(157,79,0,.18)}
.ws-node.cur.late em{font-weight:800}
@media(max-width:500px){.ws-node em{font-size:9px}}

/* 착수일 기준 주차 · 지연 표기 */

.ws-strip.delayed{background:#fdf6ec}
.ws-delay{color:var(--amber);font-weight:800;margin-left:4px}
.ws-behind{color:var(--amber);font-weight:700;margin-left:4px}
.ws-warn{color:var(--s-warn-tx);font-weight:700}   /* 착수일 미등록 주의 = warn */
.ce-schedinfo{margin-top:10px;padding:10px 14px;background:var(--panel);border-radius:8px;font-size:15px;color:var(--navy);line-height:1.5}
.ce-schedinfo b{font-weight:800}
/* 상태 메타 세그먼트 = 헤어라인 세로 구분선 + 균일 간격(middot 벽 해소·그룹 경계 명확·경계에서만 줄바꿈) */
.wl-facts{display:inline-flex;flex-wrap:wrap;align-items:center;row-gap:5px;vertical-align:middle}
.wl-seg{padding:0 13px;position:relative;line-height:1.5}
.wl-seg:first-child{padding-left:0}
.wl-seg:not(:first-child)::before{content:"";position:absolute;left:0;top:calc(50% - 6px);height:12px;width:1px;background:#c2c9dc}
.ce-schedinfo .wl-seg:not(:first-child)::before{background:#b7c0da}

/* 인앱 알림 벨 + 패널 · 문의 접수함 열람 */
.notif-wrap{position:relative}
.notif-bell{position:relative;width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}   /* 토글(Medium 36)과 정렬 */
.notif-bell:hover{border-color:var(--navy);color:var(--navy)}
.notif-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:8px;background:#e0263a;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:var(--font)}
.notif-panel{position:absolute;top:48px;right:0;width:340px;max-height:440px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 44px rgba(16,24,64,.16);z-index:60}
.notif-h{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line)}
.notif-h b{font-size:15px}
.notif-read{font-size:12px;color:var(--navy);background:none;border:0;cursor:pointer;font-family:var(--font);font-weight:600}
.notif-item{display:block;width:100%;text-align:left;padding:12px 16px;border:0;border-bottom:1px solid var(--line);background:#fff;cursor:pointer;font-family:var(--font)}
.notif-item:hover{background:var(--panel)}
.notif-item.unread{background:#f3f6fc}
.notif-item.unread .ni-t::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#e0263a;margin-right:7px;vertical-align:middle}
.ni-t{font-size:14px;font-weight:700;color:var(--ink)}
.ni-b{font-size:12px;color:var(--ink2);margin-top:3px;line-height:1.4}
.ni-m{font-size:12px;color:var(--muted2);margin-top:4px}
.notif-empty{padding:28px 16px;text-align:center;color:var(--muted2);font-size:13px}
.adm-subh{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.adm-subh .c{font-size:12px;font-weight:600;color:#fff;background:var(--navy);border-radius:999px;padding:1px 9px}
.inq-list{display:flex;flex-direction:column;gap:9px}
.inq-row{border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:#fff}
.inq-t{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;margin-bottom:6px}
.inq-c{font-size:14px;color:var(--ink-soft);line-height:1.5}
.inq-meta{font-size:12px;color:var(--muted2);margin-top:7px}

/* 카드 제목 한글 단어 분리 방지(모바일 어색한 줄바꿈 개선) */
.case-card h3,.slide-body h3,.pm-case-tt b,.pc-t{word-break:keep-all;overflow-wrap:break-word}

/* 14888 흡수 — 파이프라인 과제별/멤버별 토글 + 멤버별 그룹 뷰 */
.pipe-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 20px}
.pipe-vtog{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;margin-left:auto}   /* 뷰 전환 = 필터 우측(보조·2026-07-26) */
.pipe-vtog button{height:36px;padding:0 14px;font-size:13px;font-weight:600;font-family:var(--font);color:var(--muted2);background:#fff;border:0;cursor:pointer}
.pipe-vtog button.on{background:var(--navy);color:#fff}
.pipe-toolbar .dash-filters2{margin:0}
.mem-groups{display:flex;flex-direction:column;gap:16px}
.mem-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.mem-gh{display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--panel);border-bottom:1px solid var(--line)}
.mem-gn{font-size:15px;font-weight:700;color:var(--ink)}
.mem-gc{font-size:12px;font-weight:500;color:#9098a3}   /* 이름 옆 카운트 = 옅은 그레이(navy pill 폐기·2026-07-26 사장님) */
.mem-task{display:flex;align-items:center;gap:12px;width:100%;padding:12px 18px;border:0;border-top:1px solid var(--line);background:#fff;cursor:pointer;text-align:left;font-family:var(--font)}
.mem-task:first-of-type{border-top:0}
.mem-task:hover{background:#f6f8fc}
/* 직군 태그 = 아웃라인 chip(상태 pill=채운 파스텔과 형태 구분) · 색은 상태색 회피(2026-07-26 사장님) */
.mt-role{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:26px;font-size:12px;font-weight:600;background:#fff;border:1px solid currentColor;border-radius:var(--r-pill);padding:0 10px;flex:none;min-width:50px;text-align:center;letter-spacing:.02em}   /* SSOT §I: 라벨칩 단일 폼(pill/12/600·height26 box-border로 아웃라인 포함 동일 높이·색만 variant) */
.mt-role.r-pm{color:#0e8074}    /* PM = 틸(브랜드 데이터 계열) */
.mt-role.r-con{color:#9a6320}   /* 컨설팅 = 브론즈 */
.mt-role.r-dev{color:#4a5578}   /* 개발 = 슬레이트(회색 idle보다 짙은 청회색) */
.mt-role.r-par{color:#8a4a72}   /* 파트너 = 플럼 */
.mt-role.r-etc{color:var(--muted2)}   /* 기타 직무 = 뉴트럴 */
.mt-role.r-none{color:var(--muted2);border-color:var(--line-strong);border-style:dashed;font-weight:600}   /* 직무 미기입 = 점선 미지정 칩(빈 상태) */
.m-team{color:var(--muted);font-size:12px;margin-top:4px}
.m-none{color:var(--muted2)}
/* 상태 미니 뱃지 = 리스트 상태 pill과 동일 색 토큰·tiny(직군 태그와 사이즈 정합·2026-07-26 사장님) */
.mt-stat{display:inline-flex;align-items:center;font-family:var(--font);font-size:12px;font-weight:600;border-radius:var(--r-pill);padding:3px 10px;flex:none;letter-spacing:0;white-space:nowrap}   /* SSOT §I: 라벨칩 단일 폼(pill/12/600·상태색 --s-* 유지=D4 종료색 정정 불변) */
.mt-stat.s-idle{background:var(--s-idle-bg);color:var(--s-idle-tx)}
.mt-stat.s-active{background:var(--s-active-bg);color:var(--s-active-tx)}
.mt-stat.s-hold{background:var(--s-hold-bg);color:var(--s-hold-tx)}
.mt-stat.s-ok{background:var(--s-ok-bg);color:var(--s-ok-tx)}
.mt-stat.s-warn{background:var(--s-warn-bg);color:var(--s-warn-tx)}
.mt-stat.s-stop{background:var(--s-stop-bg);color:var(--s-stop-tx)}
.mt-nm{font-size:14px;font-weight:600;color:var(--ink)}
.mt-meta{font-size:12px;color:var(--muted2)}
.mt-delay{color:var(--amber);font-weight:700}
.mt-go{margin-left:auto;font-size:17px;line-height:1;color:var(--muted2);flex:none}   /* 화살표만(열기 텍스트 폐기) */
.mem-task:hover .mt-go{color:var(--red)}

/* ============ v27-0 — B 상태 순화(고객사 대기·연장 진행) + F 탭별 권한 + G UI ============ */
/* 고객사 대기(Hold) = 중립 회색 — 지연·경고 색 미사용(시계 정지, 스쿼드 책임 아님을 시각 분리) */
.ws-hold{color:var(--s-hold-tx);font-weight:700}   /* 고객사 대기 텍스트 = hold */
.ws-strip.hold{background:#f4f3f9}
.ws-strip.hold .ws-node.done i{background:var(--navy)}
/* 연장 진행 = 중립 칩(구 "6주 초과·지연" 앰버 대체) */
.ws-ext{display:inline-block;font-size:12px;font-weight:700;color:var(--s-warn-tx);background:var(--s-warn-bg);border-radius:8px;padding:1px 8px;margin-left:6px;vertical-align:1px}   /* 연장 진행 = warn (기존 그레이 → 앰버 통일) */
.ws-strip.ext{background:#fafbfd}
.ws-behind{color:var(--amber);font-weight:600;margin-left:4px}
/* 대시보드 배지·KPI */
#wsDash .d-badge.hold{background:var(--s-hold-bg);color:var(--s-hold-tx)}   /* 대기/보류 = hold */
#wsDash .d-badge.ext{background:var(--s-warn-bg);color:var(--s-warn-tx)}   /* 연장 진행 = warn (기존 그레이 → 앰버 통일) */
#wsDash .d-stat.holdk .n{color:var(--s-hold-tx)}
.mt-hold{color:#5d5486;font-weight:700}
.mt-ext{color:#586074;font-weight:700}
/* 개요 편집 — Hold 컨트롤. 보라색 필 폐기(2026-07-26 사장님) → 중립 배경·네이비 악센트. */
.ce-hold{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff}
.ce-hold.on{background:#fff;border-color:var(--line)}   /* 켜져도 흰 배경(회색 필=디스에이블처럼 보임 방지) */
.ce-hold-tg{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer}
.ce-hold-tg input{width:17px;height:17px;accent-color:var(--navy);flex:0 0 auto}
.ce-hold-sub{flex:1 1 100%;margin-left:26px;font-size:14px;font-weight:500;color:var(--muted2);line-height:1.5}   /* 설명 14px(2026-07-26 사장님) */
.ce-hold-x{margin-top:14px;display:flex;flex-direction:column;gap:14px}
.ce-hold-note{margin-top:0;color:var(--muted2)}
/* 물산(002) 외부 게이트 */
.cd-locked{max-width:520px;margin:60px auto;text-align:center;padding:36px 30px;border:1px solid var(--line);border-radius:16px;background:#fbfcfe}
.cd-locked b{font-size:17px}
.cd-locked p{color:var(--muted);font-size:14px;margin:10px 0 18px;line-height:1.6}
.cd-locked .btn-navy{display:inline-block;background:var(--navy);color:#fff;font-weight:700;font-size:14px;padding:10px 18px;border-radius:8px;cursor:pointer}
/* 개요 최상단 데모영상 히어로(14888식) — 콘텐츠 폭 중앙·16:9 원본비(크롭 0·화질 유지) */
.cd-hero-video{margin:0 auto 28px;max-width:960px}
.cd-hero-video .cd-player{aspect-ratio:16/9;width:100%;height:auto}

/* ============ v27-1 — A 파일 구동 진척 · C 산출물 채우기 · D 도해 추출 ============ */
/* 체크만(파일 없음) 노드 = 점선 네이비(실체 없는 진행 구분) */
.ws-node.chk i{background:#fff;border:2px dashed var(--navy);width:10px;height:10px}
.ws-node.chk em{color:var(--navy);opacity:.65}
.ws-chk{font-size:12px;color:var(--s-warn-tx);font-weight:600}   /* 파일 대기 주의 = warn */
/* C 산출물 채우기 패널 */
.ce-ai-empty{font-size:15px;color:var(--muted);padding:8px 0;line-height:1.55}
.ce-ai-link{background:none;border:0;color:var(--navy);font-weight:700;cursor:pointer;font-family:inherit;font-size:15px;text-decoration:underline;padding:0}
.ce-evd{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.ce-evd:empty{display:none}   /* 근거 없을 때 빈 여백 제거(공백 무너짐 방지) */
.ce-evd-i{display:flex;gap:8px;align-items:flex-start;font-size:12px}
.ce-evd-k{flex:none;font-weight:700;color:var(--navy);background:var(--red-soft);border-radius:8px;padding:2px 8px}
.ce-evd-q{color:var(--muted);line-height:1.5}
/* A 파일 등록 버튼 */
.del-upbtn{background:none;border:1px solid var(--navy);color:var(--navy);border-radius:8px;font-size:14px;font-weight:600;padding:0 12px;cursor:pointer;font-family:inherit}
.del-upbtn:hover{background:var(--navy);color:#fff}
/* D 도해 탭 */
.dg-cur{margin:0 0 20px}
.dg-cur-h{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:10px;display:flex;gap:10px;align-items:center}
/* 구성도 스캔 = AI 섹션과 동일 톤(버튼은 헤더 우측). 선택 셀렉트만 아래. */
.dg-scan{margin-top:12px}
.dg-scan .ce-in{max-width:560px}
/* 자료 = 사례 둘러보기(공개) 미디어 — 미리보기 + 올리기/변경. 헤어라인 톤 정합(2026-07-26 사장님). */
.mat-lead{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:16px}
.mat-lead b{color:var(--ink);font-weight:700}
.mat-list{display:flex;flex-direction:column}
.mat-item{display:flex;align-items:center;gap:16px;padding:16px 2px;border-bottom:1px solid var(--panel)}
.mat-item:last-child{border-bottom:0}
.mat-prev{width:132px;height:82px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:var(--panel);flex:0 0 auto}
.mat-prev.empty{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--muted2);border-style:dashed}
.mat-prev.mat-vid{display:flex;align-items:center;justify-content:center;background:#1a2033;border-color:#1a2033;text-decoration:none}
.mat-prev.mat-vid:hover{background:var(--navy)}
.mat-meta{flex:1 1 auto;min-width:0}
.mat-l{font-size:15px;font-weight:700;color:var(--ink)}
.mat-d{font-size:13px;color:var(--muted2);margin-top:3px}
.mat-up{flex:0 0 auto;height:36px;padding:0 16px;font-size:14px;font-weight:600;font-family:var(--font);border:1px solid var(--navy);border-radius:8px;background:none;color:var(--navy);cursor:pointer;white-space:nowrap}
.mat-up:hover{background:var(--navy);color:#fff}
.mat-note{font-size:13px;color:var(--muted2);margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:768px){.mat-item{flex-wrap:wrap}.mat-prev{width:104px;height:66px}.mat-meta{flex:1 1 40%}.mat-up{width:100%;margin-top:2px}}
.dg-img{max-width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;display:block}
.dg-cands{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:14px}
.dg-cand{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.dg-cand img{width:100%;height:130px;object-fit:contain;background:#fbfcfe;display:block;border-bottom:1px solid var(--line2)}
.dg-cand-m{display:flex;gap:8px;align-items:center;padding:8px 10px 2px}
.dg-kind{font-size:10px;font-weight:800;border-radius:var(--r-sm);padding:1px 7px;text-transform:uppercase}
.k-architecture{background:var(--red-soft);color:var(--navy)}
.k-flow{background:#e7f3ef;color:#1a7f5a}
.k-logo,.k-photo,.k-other,.k-screenshot,.k-chart{background:#f0f1f5;color:var(--muted)}
.dg-cap{font-size:12px;color:var(--ink2);font-weight:600}
.dg-low{font-size:10px;font-weight:800;border-radius:var(--r-sm);padding:1px 7px;background:#fdf3e7;color:#9d4f00}
.dg-cand-src{font-size:11px;color:var(--muted2);padding:4px 10px}
.dg-cand-acts{display:flex;gap:6px;padding:8px 10px 10px}

/* ============ 스쿼드 넘버링 + 상태 대분류(진행 중/본사업 전환/종료) ============ */
/* 넘버링 배지 = 소프트 톤(고객사명보다 낮은 위계 — 솔리드 네이비 과강조 수정) */
.tag.sqno{background:var(--red-soft);color:var(--navy);font-weight:800;font-size:11px;letter-spacing:.05em;border:1px solid #dbe0f0}
.case-card .foot .st-biz{color:#1a7f5a;font-weight:700}
.pc-no{display:inline-block;font-size:12px;font-weight:700;color:var(--muted2);background:var(--panel);border-radius:8px;padding:2px 7px;letter-spacing:.03em;flex:none}   /* 식별 뱃지 = 뉴트럴(노션풍) · 2026-07-26 고객사 라인 인라인 */
.pipe-gseg{margin-left:10px}
.pipe-gseg button{font-size:12px}

/* 정돈 라운드: 좁은 컬럼 세로 꺾임 방지 */
#wsDash .d-dist .v{white-space:nowrap;min-width:52px;text-align:right}
.pipe-gseg button{white-space:nowrap}

/* ═══ v27-P1: 시각 품질 — 2줄 세탁·필터바 얼라인·KT CI·로고월 단일 행 (2026-07-22 전사급 정비) ═══ */
/* P1-3 KT 공식 CI — 나브 라이트/다크 자동 스왑(밝은 배경=네이비+레드 · 다크=화이트+레드) */
.nav .kt-ci-dark{display:none}
.nav.dark .kt-ci-dark{display:inline-block}
.nav.dark .kt-ci-light{display:none}
/* P1-4 로고월 = 실 고객사 유니크 셋 · 단일 행 마퀴 유지(애니메이션 존치 — 사장님 확정) · 사이클 내 중복 0 */
/* P1-1 처리 흐름 스텝 — 스텝 수 기반 반응형 그리드 + 라벨 1줄(통제된 말줄임+툴팁) · 임의 줄바꿈·고아 음절 0 */
.cd-flow{display:grid;gap:10px}
.cd-flow.cd-n1{grid-template-columns:1fr}.cd-flow.cd-n2{grid-template-columns:repeat(2,1fr)}.cd-flow.cd-n3{grid-template-columns:repeat(3,1fr)}
.cd-flow.cd-n4{grid-template-columns:repeat(4,1fr)}.cd-flow.cd-n5{grid-template-columns:repeat(5,1fr)}.cd-flow.cd-n6{grid-template-columns:repeat(6,1fr)}
@media(max-width:1024px){.cd-flow.cd-n4,.cd-flow.cd-n5,.cd-flow.cd-n6{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.cd-flow.cd-n2,.cd-flow.cd-n3,.cd-flow.cd-n4,.cd-flow.cd-n5,.cd-flow.cd-n6{grid-template-columns:repeat(2,1fr)}}
.cd-step{min-width:0}
.cd-step p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:keep-all}
/* 3차 전면검토: 단일행 말줄임이 토큰 중간을 자르던 문제 → 2줄 클램프+어절 절단 — 데스크톱/모바일 표기 일치(white-space 최후선언 유지) */
.case-card .case-agent{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-height:51px;line-height:1.5;overflow:hidden;white-space:normal;word-break:keep-all;overflow-wrap:anywhere} /* 2줄 존 고정 = 카드 간 베이스라인 정렬 */
.case-card h3{min-height:46px} /* 벤핏 1~2줄 존 고정 */
.pc-main{min-width:0}
.pc-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#wsDash .d-stat .l,#wsDash .d-stat .s,#wsDash .d-mb .l{white-space:nowrap}
/* P1-2 파이프라인 필터바 — 단일 컨트롤 언어: 전 컨트롤 높이 38 통일·수직 중앙·박스/라벨 이원화 제거(baseline 오차 ≤2px) */
.pipe-toolbar{align-items:center}
.pipe-toolbar .dash-filters2{padding:0;border:0;background:none;border-radius:0;align-items:center;margin:0;gap:10px}
.pipe-toolbar .dfl{flex-direction:row}
.pipe-toolbar .dfl-l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)} /* 시각 라벨 제거(셀렉트 첫 옵션 "○○ 전체"가 라벨) · 스크린리더 유지 */
.pipe-toolbar .dfsel,.pipe-toolbar .dfl-reset{height:36px;border-radius:8px}   /* Medium 통일 */

/* ═══ v27-P3: 상태색 마스터·주차 이중 표기·범례·칸 크기 (2026-07-22 전사급 정비) ═══ */
/* P3-2 현재 주차 대형 표기 — W활성 (W착수보고일 기준) */
.ws-wnow{display:inline-flex;align-items:baseline;gap:4px;margin-right:12px;padding:2px 10px;border-radius:8px;background:var(--navy);color:#fff;font-weight:800;font-size:14px;letter-spacing:.01em}
.ws-wnow em{font-style:normal;font-weight:600;font-size:12px;color:#c3ccdf}
.ws-strip.hold .ws-wnow{background:#7d75a8}
.pc-dl b{color:var(--navy);font-weight:700}
/* P3-1 인라인 범례 — 주차 노드 색 의미 단일 해독(마스터 팔레트와 동일) */
.ws-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 12px;padding:9px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--muted)}
.ws-legend-t{color:var(--ink2);font-size:12px}
.ws-legend .lgi{display:inline-flex;align-items:center;gap:5px}
.ws-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;border:2px solid transparent}
.ws-legend .lg-done{background:var(--navy);border-color:var(--navy)}
.ws-legend .lg-chk{background:#fff;border-color:var(--navy);border-style:dashed}
.ws-legend .lg-late{background:#c98a2b;border-color:#c98a2b}
.ws-legend .lg-fut{background:#fff;border-color:#cfd6e4}
.ws-legend .lg-wk em{font-style:normal;color:var(--muted2)}
/* P3-3 칸 크기·가독 — 행 여백·타이포·클릭 영역 확대(밀도보다 직관) */
.pcard-hd{padding:20px 24px;gap:20px}
.pc-t{font-size:16px}
.pc-m{font-size:13px;margin-top:5px}
.pc-dl{font-size:12px}
.ws-lab{font-size:13px}
.ws-node em{font-size:11px}
#wsDash .d-card{padding:24px 26px}
#wsDash .d-stat .l{font-size:14px}
.mem-task{min-height:52px}

/* ═══ v27-P4: 카탈로그 확정 — F-1 다중 선택 · F-4 위치 표기 · 영상 준비중 정직 (2026-07-22) ═══ */
/* 파일 선택 = 리스트형 체크리스트(박스 폐기·2026-07-26 사장님). 노션 태스크 리스트 톤. */
.ce-ai-files{display:flex;flex-direction:column;gap:2px;margin:12px 0}
.ce-ai-f{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ink2);cursor:pointer;padding:7px 2px;border:0;border-radius:0;background:none}
.ce-ai-f:hover{color:var(--navy)}
.ce-ai-f input{width:16px;height:16px;accent-color:var(--navy);flex:0 0 auto}
.ce-ai-f span.ai-fn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}
/* AI 개요 채우기(과제 정의) — 산출물에 올라온 문서를 읽는 소스 목록 + 실행(A안·업로드는 산출물 탭) */
.ai-srchead{font-size:13px;font-weight:700;color:var(--muted2);margin:14px 0 6px;display:flex;align-items:center;gap:8px}
.ai-srchead .pd-count{font-family:var(--mono);color:var(--muted);font-weight:600}
.ce-ai-files{max-height:200px;overflow-y:auto;overscroll-behavior:contain}
.ai-ftag{font-size:12px;font-weight:600;color:var(--muted2);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:2px 8px;white-space:nowrap;flex:0 0 auto;max-width:40%;overflow:hidden;text-overflow:ellipsis}
.ce-ai-row{display:flex;align-items:center;gap:12px;justify-content:flex-end}
.ce-ai-status{flex:1 1 auto;order:-1}
/* ── 산출물 로드맵(산출물 탭·A안) — PM 이 주차별 필요/완료/빈칸 한눈에 + 인슬롯 업로드 ── */
/* 박스형·헤드 카피 폐기(2026-07-26 사장님) — 주차 = 헤어라인 하나로만 구획, 최대한 담백하게 */
.rm-wrap{display:flex;flex-direction:column}
.rm-week{border-bottom:1px solid var(--line)}
.rm-week:last-child{border-bottom:0}
.rm-wh{width:100%;display:flex;align-items:center;gap:11px;padding:13px 2px;background:none;border:0;cursor:pointer;font-family:var(--font);text-align:left}
.rm-wh:hover .rm-wt{color:var(--navy)}
.rm-chev{color:var(--muted);font-size:14px;line-height:1;flex:0 0 auto;width:14px;text-align:center}
.rm-wh:hover .rm-chev{color:var(--navy)}
.rm-wt{font-size:16px;font-weight:700;color:var(--ink);flex:0 0 auto}
.rm-wt em{font-style:normal;font-weight:500;color:var(--muted2);font-size:13px;margin-left:2px}
.rm-cnt{font-family:var(--font);font-size:14px;font-weight:500;color:var(--muted);flex:0 0 auto;margin-left:auto;text-align:right}
.rm-cnt.ok{color:var(--teal)}
.rm-body{padding:0 2px 10px}
.rm-week:not(.open) .rm-body{display:none}
.rm-body .del-row{padding-left:25px;border-bottom:0}   /* 주차 내부 아이템 = 라인 없음(주차 경계선과 겹침 방지) */
.rm-body .del-row:first-child{padding-top:2px}
@media(max-width:768px){.ce-ai-files{max-height:230px}.del-act{flex-wrap:wrap;gap:6px 8px;justify-content:flex-end}.del-file{max-width:46vw}}
/* 업로드 파일 삭제(✕) — 소스 목록·산출물 목록 공용 */
.fdel{background:none;border:0;color:var(--muted2);cursor:pointer;font-size:13px;line-height:1;padding:5px;border-radius:8px;flex:0 0 auto;font-family:var(--font)}
.fdel:hover{color:var(--red);background:var(--red-soft)}
.del-fitem{display:inline-flex;align-items:center;gap:5px}
.ce-pos{font-size:14px;font-weight:600;color:var(--muted2);letter-spacing:0}   /* 담당자 직책 14px(2026-07-26 사장님) */
.cd-vbadge.muted{background:rgba(20,24,40,.72);color:#dfe3ee}
.cd-vprep{position:absolute;left:0;right:0;bottom:0;padding:14px 18px;background:linear-gradient(transparent,rgba(10,14,28,.82));color:#eef1f8;font-size:14px}
.cd-player.cd-novideo{cursor:default}

/* 하이라이트 캐러셀 실 썸네일 — slide-img 꽉 채움(비율 유지 크롭) */
.slide-img .slide-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* ═══ v28-2차 §1: 파이프라인 행 재설계 — 열 고정·주차 1급·점진적 공개 (2026-07-22) ═══ */
.pc2-cols{display:grid;grid-template-columns:minmax(0,1fr) 112px 168px 132px 76px;gap:20px;padding:0 24px 8px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted2);text-transform:uppercase}
.pcard-hd{grid-template-columns:minmax(0,1fr) 112px 168px 132px 76px;gap:20px;padding:18px 24px;min-height:76px}
.pc2-t{display:flex;align-items:center;gap:8px;min-width:0}
.pc2-nm{font-family:var(--font-title);font-weight:700;font-size:16px;letter-spacing:-.2px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* 과제명 = 타이틀 → KT flow 볼드 16px(2026-07-26 사장님) */
.pc2-sub{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:13px;color:var(--muted);min-width:0}
.pc2-cs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}   /* SQUAD 뱃지와 같은 라인 · 고객사·섹터는 말줄임 */
/* 3차 §1②a: 보류 = 독립 슬레이트 칩 + 좌측 액센트 큐(무리 스캔) — 접힘 행 아바타는 폐기(인물=펼침·멤버별 뷰) */
.pc-stg.holdwait{background:var(--s-hold-bg);color:var(--s-hold-tx);white-space:nowrap}   /* 고객사 대기/보류 = hold */
/* ①3: 고객사 대기 좌측 레일 폐기 — 구분은 "⏸ 고객사 대기" 칩만(전 행 구조 통일) */
/* ③ 주차 = 1급 대형 칩 */
.pc2-wkcol{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.pc2-wk{display:inline-flex;align-items:baseline;gap:5px;padding:4px 10px;border-radius:8px;background:var(--navy);color:#fff;font-family:var(--font);font-weight:600;font-size:13px;letter-spacing:0;line-height:1.2}   /* 메트릭 칩 — Pretendard 명시·감량(2026-07-26 사장님) */
.pc2-wk.dual{font-size:13px;gap:1px}
.pc2-wk.dual b{font-weight:600;font-size:13px}
.pc2-wk.dual em{font-style:normal;font-weight:500;font-size:12px;color:#c3ccdf}
.pc2-wk.hold{background:var(--s-hold-dot)}
/* ①2: 완료 케이스 전용 색 — 본사업 전환=그린 틴트 · 종료/Drop=그레이(상태색 마스터 정합) */
.pc2-wk.fin{background:#eef0f6;color:#5b6474;font-weight:700;font-size:14px}
.pc2-wk.fin.biz{background:var(--s-ok-bg);color:var(--s-ok-tx)}   /* 본사업 전환 주차칩 = ok */
.ws-wnow.fin{background:#eef0f6;color:#5b6474}
.pc2-wk.pre{background:#eef0f6;color:var(--muted);font-weight:600;font-size:12px}
/* ④ 진척 = 얇은 바 + 숫자 1개 */
.pc-prog .db{height:5px;border-radius:2px;overflow:hidden}
.pc-prog .pc-dl{font-size:12px;font-weight:500;color:var(--muted);font-family:var(--font)}   /* 산출물 라벨 = Pretendard·강조 완화(2026-07-26 사장님) */
/* ⑤ 케밥 액션 */
.pc2-act{position:relative;display:flex;justify-content:center}
.pc2-kebab{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:18px;font-weight:800;color:var(--muted);cursor:pointer;line-height:1}
.pc2-kebab:hover{border-color:var(--navy);color:var(--navy)}
.pc2-menu{position:absolute;top:40px;right:0;z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(15,26,58,.14);padding:6px;min-width:168px;display:flex;flex-direction:column;gap:2px}
.pc2-menu button{text-align:left;padding:9px 12px;border:0;background:none;border-radius:8px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer}
.pc2-menu button:hover{background:var(--panel)}
.pc2-menu button.on{color:var(--navy);font-weight:800}
.pc2-ro{padding:9px 12px;font-size:12px;color:var(--muted2)}
/* 펼침 = 점진적 공개 */
.pc2-fullmeta{padding:12px 24px 0;font-size:13px;color:var(--muted)}
.ws-node.cur i{width:20px;height:20px;border-width:3px}
.ws-nowlab{position:absolute;top:-20px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;white-space:nowrap}
.ws-node{overflow:visible}
.ws-track{padding-top:20px}
@media(max-width:1024px){.pc2-cols{display:none}.pcard-hd{grid-template-columns:1fr;gap:12px;min-height:0}.pc2-wkcol{flex-direction:row;align-items:center}}

/* ═══ v29-3차 전면검토 폴리시 (2026-07-22) ═══ */
/* 부하 바 과부하(진행중 3+) = 앰버(주의 전용색) — 대시 스쿼드 부하와 색·기준 정합 */
.load-bar i.over{background:var(--amber)}
/* Drop = 죽은 과제 신호(비색상 차별화: 취소선+딤) — 준비군 회색과 의미 충돌 해소 */
.pc-stg.drop{color:var(--s-stop-tx);text-decoration:line-through;background:var(--s-stop-bg)}   /* Drop/중단 = stop */
/* 사례 목록 고아 슬롯 → 신청 유도 타일(대시드) */
/* ①5: "이런 에이전트가 필요하신가요?" CTA 타일 삭제(사례 그리드 = 실사례만) */
.pc2-nonm{color:var(--muted2);font-weight:600;font-style:normal}

/* ═══ 최종본 §신규 (2026-07-22) ═══ */
/* ① CTA 정정(사장님 2026-07-22): 라이트化 취소 — 홈 CTA = 다크 네이비 원복(기본 규칙 그대로).
   사례 상세 CTA = 다크 유지, 문제는 반복·과강조 → 밴드 크기·강조 축소(슬림 다크 바·페이지당 1회). */
/* P1-4(전수검증): 상세 CTA = 전폭 프리푸터 밴드 — 푸터(#0b1022)와 이어지는 단일 다크 존(다크 유지·비지배·이중 스택 해소) */
.cd-cta{background:#0b1022;border-radius:0;padding:0;display:block;color:#fff;text-align:left;margin:72px 0 0}
.cd-cta-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:22px;padding:34px 24px;flex-wrap:wrap} /* PT2-W2: 문구·버튼 양끝 벌어짐(사장님 지적) → 한 묶음 중앙 — 시선 단절 해소 */
.cd-cta h3{font-size:18px;font-weight:700;letter-spacing:-.2px;margin:0;color:#eef1f8}
.cd-cta .btn{padding:10px 20px;font-size:14px}
@media(max-width:768px){.cd-cta-in{flex-direction:column;align-items:flex-start}}
@media(max-width:768px){.cd-cta{flex-direction:column;align-items:flex-start}}
/* ② 게이트 로그인 박스: 비율·수직 리듬 정리(폭 440·리듬 12/24·버튼 네이비 고정폭) */
.cd-locked{max-width:440px;margin:72px auto;padding:40px 36px}
.cd-locked b{font-size:18px;letter-spacing:-.3px;display:block}
.cd-locked p{margin:12px 0 24px}
.cd-locked .btn-navy{min-width:200px;padding:12px 22px;font-size:14px}

/* 사장님 07-23: 팀 카드 문구 전부 한 줄(고아 줄바꿈 0) + 텍스트형 cnt 크기 조절 */
.teamcard p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:keep-all}
.teamcard .cnt.cnt-t{font-size:22px;letter-spacing:-.5px}

/* ═══ 줄넘김 위생(사장님 07-23: "말이 중간에 끊기는 줄바꿈 금지·고아 어절 0") ═══ */
/* 제목류 = 줄 균형(balance) · 본문류 = 고아 방지(pretty) + 한글 어절 보존(keep-all) */
h1,h2,h3,h4,.sec-head p{text-wrap:balance}
p,li,.df-step-q,.df-stage-d,.axis-item,.pg-sectoritem,.pg-paincard p,.faq-a p{text-wrap:pretty;word-break:keep-all;overflow-wrap:break-word}
.tcard p{text-wrap:balance;word-break:keep-all} /* 성과 카드 = 2줄 시 균형(고아 0) */
.pain-solve span{text-wrap:balance} /* 줌감사 P5: Why 종결 음절 '다.' 고아 방지(1440 폭) */
/* 홈 성과 카드 fig = 항상 한 줄(중간 폭에선 크기 축소로 수용) */
.tc-fig{white-space:nowrap}
@media(max-width:1024px){.tc-fig{font-size:22px;letter-spacing:-.6px}
  /* W0: 한 줄 규율은 데스크톱(1280+) 기준 — 좁은 폭은 어절 단위 줄바꿈 허용(말줄임 끊김 금지) */
  .teamcard p{white-space:normal;overflow:visible;text-overflow:clip}}

/* ── PART2(17888): Zero-Ops·접수번호 표면 ── */
.intake-ai{margin-top:8px;font-size:13px;line-height:1.65;color:var(--ink2);background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.intake-ai .d-brief-tag{margin-right:4px}
.ce-draft{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f4f7ff;border:1px solid #d8e2f8;border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:15px}
.ap-no{font-size:17px;margin-top:6px}
.ap-no b{color:var(--navy);letter-spacing:.02em}
.d-lint-nm{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--navy);cursor:pointer;text-align:left}
.d-lint-nm:hover{color:var(--red)}
.c-warn{color:#b95d00}


/* ══ PT2-U: 파이프라인 사용성(고령·비개발자) — P1 가독 · P2 조작 · P3 배려 ══ */
/* P1-ⓑ 폰트 플로어 — 판단 핵심 정보(헤더·번호·상태·진척) 11~12px → 13px+ */
.pc2-cols{font-size:13px;letter-spacing:.03em}
.pc-no{font-size:12px}
.pc-stg{font-size:12px;padding:3px 10px}   /* SSOT §I: 라벨칩 pad 통일 */
.pc-dl{font-size:12px;color:var(--muted)}
.pc-prog .db{height:8px}
.dfl-l{font-size:12px}
.ce-pos{font-size:14px}
.ce-hint{font-size:14px}
.ce-savehint{font-size:12px}
.ws-chk{font-size:12px}
#wsPipe .ce-f label{font-size:14px;color:var(--ink2)}   /* 필드 라벨 14 정합(구 12 오버라이드 제거·2026-07-26) */
.ws-node em{font-size:12px;color:#5f6774}
/* P1-ⓐ 대비 교정 — 실측 미달 3계열(2.4~4.4:1 → 4.5:1+) */
.pc2-wk.hold{background:var(--s-hold-dot)}
.ws-strip.hold .ws-wnow{background:#5b5487}
.pc2-wk.dual em{font-size:13px;color:#e2e7f5}
.pc-stg.drop{color:var(--s-stop-tx)}
/* P2-ⓐ 케밥 = 라벨 버튼 44px("관리") · 펼침 인디케이터 = 버튼형 단서 */
.pc2-kebab{width:auto;min-width:0;height:36px;font-size:13px;font-weight:600;padding:0 14px;color:var(--ink2);font-family:var(--font)}   /* Medium 36·Pretendard(2026-07-26 사장님 — 44 Arial 정리) */
.pc2-kebab:hover{border-color:var(--red);color:var(--red)}
@media(min-width:1025px){.pcard-hd{grid-template-columns:minmax(0,1fr) 112px 168px 132px 76px}}   /* 데스크톱 전용 — ≤1024 모바일 1열 · 셰브런 열 제거(2026-07-26) */
.pc2-cols{grid-template-columns:minmax(0,1fr) 112px 168px 132px 76px}
.pcard-hd:hover .pc2-nm{color:var(--red)}
/* P2-ⓑ 클릭 타깃 44px — 터치 기기 한정(데스크톱 뷰 토글=Medium 36·필터와 통일 2026-07-26 사장님) */
@media(pointer:coarse){.pipe-vtog button{height:44px;font-size:14px}}
.pipe-toolbar .dfsel,.dfsel{height:36px}   /* Medium 36(사장님 지시 2026-07-26·기존 44 터치타깃 override 해제) */
.detail-tabs button{padding:14px 16px;font-size:15px}
/* 폼 컨트롤 44px 터치타깃 = 터치 기기 한정(데스크톱은 자연 크기 Medium 36·입력 40·2026-07-26 사장님) */
@media(pointer:coarse){#wsPipe [data-act="casesave"],#wsPipe [data-act="aiextract"],#wsPipe input.ce-in,#wsPipe select.ce-in,#wsPipe .txtarea{min-height:44px}}
/* P3 큰 글씨 토글 — 워크스페이스 한정 확대(설정 기억) */
/* 헤더 우측 위계: 주(보기 전환) │ 보조 아이콘쌍(가＋·알림) │ 종료 링크(공개 포털) — 어지러움 정리 */
.ws-aux{display:inline-flex;align-items:center;gap:8px}
.bigfont-btn{display:inline-flex;align-items:center;justify-content:center;gap:1px;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink2);font-family:var(--font);font-size:14px;font-weight:700;cursor:pointer}
.bigfont-btn .bf-plus{font-size:10px;vertical-align:3px}
.bigfont-btn:hover{border-color:var(--red);color:var(--red)}
.bigfont-btn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.ws-exit{display:inline-flex;align-items:center;gap:4px;height:40px;padding:0 6px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}
.ws-exit:hover{color:var(--red)}
body.ws-big #workspace{zoom:1.16}
/* PT2-U 잔여 2건 — 주차 스트립 (W11)·hold 안내문 대비 */
.ws-wnow em{font-style:normal;font-size:13px;color:#e2e7f5}
#wsPipe .ce-hold .ce-hint,#wsPipe .ce-holdnote{color:#59616e}


/* ══ PT2-U2: 사용성 기준 확장 — 대시보드 · 홈 콘텐츠 · 멤버·운영 (13px 플로어·44px 히트·대비) ══ */
/* 폰트 플로어 */
#wsDash .d-kick,#wsDash .d-brief-tag{font-size:12px}
#wsDash .d-secunset{font-size:13px}   /* d-badge=XSmall 12px 통일(2218 분리) */
#wsContent .cc-badge,#wsContent .cc-hint,#wsContent .cur button{font-size:12px}
#wsContent .cc-tg,#wsContent .cc-lk{font-size:13px}
#wsAdmin .mact,#wsAdmin .cc-tg,#wsAdmin .rolesel{font-size:13px}   /* SA24 §E: adm-note 제외 → 12px 보조 텍스트 유지 */
#wsAdmin .badge-s{font-size:12px}   /* XSmall 뱃지 통일(13→12) */
#wsAdmin .adm-card .k,#wsAdmin .adm-card .d{font-size:13px}
/* 대비 — bs-off('계정 미생성' 등) 4.2 → 4.5+ */
.bs-off{color:var(--s-idle-tx)}
/* 히트 타깃 — 컨트롤은 실높이 상향·소형 시각 요소는 pseudo 히트 확장(시각 밀도 유지) */
#wsDash .d-cta{min-height:36px}   /* Medium 36(사장님 지시 — 터치 44 override 해제) */
#wsDash .d-dist{min-height:40px}
#wsDash .d-legi,#wsDash .d-ch a,#wsDash .d-lint-nm,#wsDash .d-seg,#wsDash .d-mrow .nm[data-act]{position:relative}
#wsDash .d-legi::after,#wsDash .d-ch a::after,#wsDash .d-lint-nm::after{content:"";position:absolute;inset:-11px -4px}
#wsDash .d-seg::after{content:"";position:absolute;left:0;right:0;top:-10px;bottom:-10px}
#wsContent .cur button{position:relative;min-height:34px}
#wsContent .cur button::after{content:"";position:absolute;inset:-6px -2px}
#wsContent input.cc-fig,#wsContent .cc-row input[type="text"]{min-height:44px}
#wsAdmin .adm-search{height:36px}   /* Medium 36(2026-07-26 사장님) · 터치는 아래 coarse서 44 */
#wsAdmin .btn{min-height:36px}
@media(pointer:coarse){#wsAdmin .adm-search{height:44px}#wsAdmin .btn{min-height:44px}}
#wsAdmin .rolesel{min-height:34px;padding:0 26px 0 10px}   /* 커스텀 화살표 여백 유지(네이티브 padding override 방지) */
#wsAdmin .mact{position:relative;padding:7px 12px}
#wsAdmin .mact::after{content:"";position:absolute;inset:-8px -2px}
#wsAdmin .mtable td{padding-top:8px;padding-bottom:8px}
/* PT2-U2 잔여 — bs-wait 앰버 대비·테이블 헤더 13px·역할 셀렉트 44px */
.bs-wait{color:var(--s-hold-tx)}
#wsAdmin .mtable th{font-size:13px}
#wsAdmin .rolesel{min-height:36px}


/* ══ PT2-W: 전면 세탁 — 팀 카드 설명 말줄임 잘림 근절(전 폭 한 줄 완전 노출) ══
   실측: 카드3 'Use Case Discovery…' 문구가 wrap 1200 그리드에서 29px 초과 → … 잘림(전 데스크톱 폭).
   문구는 확정본 무변조 — 박스를 맞춤: 본문 13px(사용성 플로어 준수)+좌우 패딩 24+자간 -0.1
   = 여유 ~12px(윈도우 폰트 메트릭 편차 방어). ≤1230px 어절 줄바꿈 허용(W0)은 그대로. */
.teamcard{padding:32px 24px}
.teamcard p{font-size:13px;letter-spacing:-.1px}


/* ══ PT2-W2: UX 전면 검증 확정분(크리틱 교차 판독 → 캡처 재확인 6건) ══ */
/* [08] 분포 행: 라벨-값-막대 순서(보고서형 — 값이 라벨 옆·막대는 우측 잔여) — 양끝 벌어짐 해소 */
#wsDash .d-dist .bar{order:3}
#wsDash .d-dist .v{flex:none;min-width:44px;text-align:left}
/* [08] 센티널 행 요약 전문 노출(말줄임 금지 — 어절 단위 줄바꿈) */
#wsDash .d-lint-sum{white-space:normal;font-family:var(--font);text-align:left;flex:1;line-height:1.5;word-break:keep-all;font-size:13px;color:var(--n600)}
/* [07] 체험 추천 질문 칩 — 원문 전체(잘림 금지·어절 줄바꿈) */
#cdLiveChips .asst-chip{white-space:normal;text-align:left;line-height:1.45;word-break:keep-all}
/* [10] 콘텐츠 노출 관리 행 — 이름 열 고정 + 토글 군집을 이름 옆으로(전폭 벌어짐 해소) */
#wsContent .cc-row{justify-content:flex-start;gap:26px}
#wsContent .cc-row .cc-rn{flex:0 0 380px;min-width:0}
/* [02] 프로그램 통계 3블록 — 전폭 흩어짐 → 중앙 수렴 묶음 */
.pg-statgrid{max-width:880px;margin-left:auto;margin-right:auto}
/* [11] 접수함 행 — 정보 좌측·상태/액션 우측 군집(자동폭·pill 늘어남 금지) */
.intake-row{grid-template-columns:minmax(0,1fr) auto auto auto;gap:14px}
.intake-row .badge-s{justify-self:start;align-self:center}

/* ══ 과제 정의 탭 — 박스/필 제거·헤어라인 구획(2026-07-26 사장님: "박스박스 필값 그만") ══
   섹션 경계 = border-top 헤어라인 하나. 색 채운 박스·둥근 카드·틴트 헤더 전부 폐기. 좌측선 0 통일. */
.ce-form>.ce-note,.ce-form>.ce-ai,.ce-form>.ce-draft{margin-left:0;margin-right:0}
.ce-acc{border:0;border-top:1px solid var(--line);border-radius:0;padding:0;margin:0}
.ce-acc-h{width:100%;display:flex;align-items:center;gap:9px;padding:15px 0;margin:0;background:none;border:0;border-radius:0;cursor:pointer;font-family:var(--font);font-size:18px;font-weight:700;color:var(--ink);text-align:left}
.ce-acc.open>.ce-acc-h{background:none;color:var(--ink);border-radius:0}
.ce-acc-h:hover{color:var(--red)}
.ce-acc-ic{color:var(--muted2);font-size:11px;flex:none;order:9;margin-left:8px}
.ce-acc.open>.ce-acc-h .ce-acc-ic{color:var(--navy)}
.ce-acc-h .ce-hint{font-weight:500;color:var(--muted2)}
.ce-acc-h .pd-count{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--muted);margin-left:auto}
.ce-acc>:not(.ce-acc-h){padding:0}
.ce-acc>.ce-grid,.ce-acc>.field-lbl:first-of-type,.ce-acc>.ce-stat-row:first-of-type,.ce-acc>.ce-narr,.ce-acc>.pd-deliv-body{padding-top:2px}
.ce-narr>.field-lbl:first-child{margin-top:0}
.ce-acc>*:last-child{padding-bottom:16px}
.ce-acc:not(.open)>*:not(.ce-acc-h){display:none}   /* 접힘 = 헤더 빼고 숨김(input DOM 유지 → 저장 값 정상) */
.pd-deliv-body{padding-bottom:6px}
/* 읽기 뷰 산출물 블록 */
.pd-block{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.pd-bh{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;margin-bottom:10px}
.pd-bh .pd-count{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--muted);margin-left:auto}
.ce-form .ce-note{padding-left:0;padding-right:0}
.ce-form>.ce-acc:first-child,.ce-form>.ce-ai:first-child{border-top:0;padding-top:2px}   /* 첫 섹션 = 탭바 경계와 중복 방지 + 상단 여백 최소화(진입 즉시 내용) */
.ce-form>.ce-acc:first-child>.ce-acc-h{padding-top:4px}

/* ══ 고급화 단계 1: 숫자 tabular-nums (폭 흔들림 제거 → 표·지표 정돈) ══ */
.hchip b,.tc-fig,.teamcard .cnt,.d-stat .n,.d-mb .n,.d-dist .v,.bar-row .vv,.pc-dl,.pc2-wk,.pc2-wk b,
.cd-stat .v,.slide-stats .st .v,.kv div .v,.pc-no,.badge-s,.d-seg,.num,.d-brief-tag,.ap-no b,.intake-row .meta{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* ══ 고급화 단계 2: 카드 hover 3단 깊이(구식 -5px → 세련 -2px + 부드러운 그림자) ══ */
.numcard,.teamcard,.case-card,.tcard,.prodcard{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.numcard:hover,.teamcard:hover,.case-card:hover,.tcard:hover,.prodcard:hover{transform:translateY(-2px);border-color:var(--red);box-shadow:0 8px 24px rgba(24,41,110,.10)}
/* 진행방식(numcard)·현직전문가(teamcard) = 비클릭 카드 — 호버 액션 전부 제거(클릭 가능처럼 보이지 않게) */
.numcard,.teamcard{cursor:default;transition:none}
.numcard:hover,.teamcard:hover{transform:none;border-color:var(--line);box-shadow:none}
.numcard:hover .n{transform:none}

/* ══ 고급화 단계 3: 입력 focus 링(고령 배려 — 지금 어디 입력 중인지) + 목록 행 hover ══ */
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(24,41,110,.13)}
.intake-row:hover,#wsContent .cc-row:hover{background:#f8f9fc}
#wsContent .cc-row{transition:background .14s;border-radius:8px;padding-left:10px;padding-right:10px;margin:0 -10px}
.intake-row{transition:background .14s}

/* ══ 고급화 단계 6: 사례 상세 소제목 kicker(좌측 레드바 — 문서 구조 또렷하게) ══ */
.cd-blk h4{position:relative;padding-left:13px}
.cd-blk h4::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:var(--red)}

/* ═══════════════════════════════════════════════════════════════════════════
   D1 시각 폴리시 (2026-07-28) — 순수 시각 디테일. 골격·카피·기능·데이터 무변경.
   캐논: 네이비 지배 · 레드(--cta #e0263a) = 로고·공개 1차 CTA(과제 신청) 전용 ·
   상태색 마스터(고객사 대기=바이올렛 · 본사업=그린) 불변.
   목표 = docs/design_ba_20260728/ 애프터 캡처. 파일 최후미 = 캐스케이드 승자.
   ═══════════════════════════════════════════════════════════════════════════ */

/* X4 명도 3단(신설 · D1 신규 규칙 전용 · 전역 --ink #101010은 미변경, 전면 치환은 D2)
   X5 8pt 스페이싱 스케일(신설 · D1에서 만지는 요소만 스냅) */
:root{
  --ink-2:#5a6472; --ink-3:#9199a8;
  /* SA24 §G·P7 간격 격자 12단 폐쇄집합 (미사용 → 재정의 안전 · 소비자 이관은 룩-diff 라운드) */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
  --sp-7:40px; --sp-8:48px; --sp-9:64px; --sp-10:80px; --sp-11:96px; --sp-12:128px;
  --d-cardline:rgba(20,30,60,.07);
}

/* ═══ §1 홈 히어로 ═══ */
/* H0 pill = 대문자 블루 텍스트 + 하단 그라디언트 라인(보더 pill 폐기) */
.hero .hpill{display:inline-block;position:relative;border:0;background:none;padding:0 0 14px;margin-bottom:26px;font-size:12px;font-weight:700;color:#8fa8dc;letter-spacing:.16em;text-transform:uppercase;line-height:1.2}
.hero .hpill::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:34px;height:2px;border-radius:2px;background:linear-gradient(90deg,#3350b5,#8fa8dc)}
/* H1 자간 완화 + 뎁스(크기·굵기·행간 유지) */
.hero h1{letter-spacing:-.5px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
/* H2 sub = 위계 하강(어둡게) + measure 축소 */
.hero .sub{color:rgba(255,255,255,.62);font-weight:450;max-width:600px;margin-left:auto;margin-right:auto}
/* H3 CTA = 신청(레드)이 물리적 왼쪽 */
.hero .cta{flex-direction:row;gap:14px}   /* SA22 감사 P3: row-reverse 제거 — 1차 CTA(과제신청)를 DOM 첫번째로 두어 데스크탑 좌측·모바일 컬럼 상단 일치(위계 역전 해소) */
/* H3a 레드 CTA — 색 불변(캐논), 글로우·패딩·굵기 */
.hero .cta .btn-red{box-shadow:0 12px 34px rgba(224,38,58,.42);padding:15px 30px;font-weight:700}
/* H3b 고스트 */
.hero .cta .btn-line.on-dark{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.24);color:rgba(255,255,255,.9)}
/* H4 지표 스트립 + 세로 구분선 2개 */
.hero .hchips{gap:0;align-items:stretch;margin-top:44px;padding-top:0}
.hero .hchip{position:relative;padding:4px 34px;min-width:0}
.hero .hchip + .hchip::before{content:"";position:absolute;left:0;top:14%;height:72%;width:1px;background:rgba(255,255,255,.14)}
.hero .hchip b{color:#fff;letter-spacing:-.5px}
.hero .hchip span{color:rgba(255,255,255,.5);font-size:12px;letter-spacing:.02em}
/* 모바일 재확인 — 상위 MQ(≤500 column)가 내 desktop row-reverse보다 앞서므로 재선언 */
@media(max-width:500px){.hero .cta{flex-direction:column}}

/* ═══ §2 사례 카드 ═══ */
/* C0 카드 = 라운드 + 이중 그림자 + 호버 상승 6px */
.case-card{border:1px solid var(--d-cardline);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,64,.05),0 12px 30px rgba(16,24,64,.07);transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s}
.case-card:hover{transform:translateY(-6px);box-shadow:0 12px 26px rgba(16,24,64,.11),0 30px 60px rgba(16,24,64,.17);border-color:rgba(51,80,181,.2)}
/* C0b 본문 = 세로 스택(8pt) */
.case-card .cc-body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:7px}
/* C1 섹터칩 = 업종 블루칩 */
.case-card .tag.sector{background:#eef1fb;color:#18296e;font-weight:600;font-size:12px;letter-spacing:0;padding:3px 10px;border-radius:var(--r-pill);border:0;display:inline-flex;align-items:center}   /* SSOT §I: 라벨칩 단일 폼(pill/12/600 — .sdom 기준). 섹터 네이비 유지 */
/* C2a 고객사 = 뮤트 + 블루 점 */
.case-card .cc-body .cust{color:#6b7688;font-weight:600;font-size:13px;margin:0;display:flex;align-items:center;gap:6px;letter-spacing:0}
.case-card .cc-body .cust::before{content:"";width:5px;height:5px;border-radius:50%;background:#18296e;flex:none;margin:0}   /* SA22 감사 P8: 캐논 네이비 */
/* C2b 에이전트명 = 부제로 하강 */
.case-card .cc-body .case-agent{color:#9199a8;font-size:12px;font-weight:500;margin:0;min-height:0;display:block;letter-spacing:0}
/* C2c 성과 헤드라인 = 카드 주인공(최대 텍스트) */
.case-card .cc-body h3{font-size:18px;line-height:1.34;letter-spacing:-.3px;color:#0f1828;font-weight:700;margin:3px 0 4px;min-height:0}
/* C3 메트릭 라인 = 상단 구분선 + 그린 불릿 + 우측 "자세히 보기 →"(대시 프리픽스 대체 · JS 무변경) */
.case-card .cc-body .eff{margin-top:12px;padding-top:14px;border-top:1px solid var(--d-cardline);color:#0b7a6b;font-weight:700;font-size:12px;display:flex;align-items:center;gap:7px;letter-spacing:0}
.case-card .cc-body .eff::before{content:"";width:6px;height:6px;border-radius:50%;background:#0b7a6b;flex:none;margin:0}
.case-card .cc-body .eff::after{content:"자세히 보기 →";margin-left:auto;color:#18296e;font-weight:600;font-size:12px}   /* SA22 감사 P8: 캐논 네이비 */

/* ═══ §3 워크스페이스 파이프라인 ═══ */
/* W1a 진척 트랙 = 8px 라운드 회색 */
.pcard .pc-prog .db{height:8px;border-radius:var(--r-sm);background:#e9ecf2;overflow:hidden;min-width:120px}
/* W1b 채움 = 그린 그라디언트 */
.pcard .pc-prog .db i{border-radius:var(--r-sm);background:linear-gradient(90deg,#2f9463,#18b478)}
/* W3 진척 라벨 강조 */
.pcard .pc-prog .pc-dl{font-weight:700;color:#0f1828}
/* W4 상태칩 = 라운드/패딩 정돈(색은 상태 마스터 그대로) */
.pcard .pc-stg{font-weight:600;border-radius:var(--r-pill);padding:3px 10px;letter-spacing:.01em}   /* SSOT §I: 파이프 표 상태칩 pill 통일(색·--s-* 불변) */
/* W2 행 호버 = 좌측 액센트 레일(진행=블루 · 대기=바이올렛) */
.pcards .pcard{border-radius:12px;transition:background .14s}
.pcard-hd:hover{background:#f7f9fc}
.pcards .pcard:hover{box-shadow:inset 3px 0 0 #3350b5}
.pcards .pcard.holdrow:hover{box-shadow:inset 3px 0 0 #7d73b0}
/* W5 관리 버튼 = 뉴트럴 아웃라인(hover 블루 · 레드 아님) */
.pc2-kebab{border:1px solid #dfe3ea;background:#fff;color:#5a6472;border-radius:8px;font-weight:600}
.pc2-kebab:hover{border-color:#3350b5;color:#3350b5}

/* ═══ §4 추가 (사장님 결정 2026-07-28) ═══ */
/* X1 종료 상태색 분리 — 파이프 상태칩만: 완료/종료(.done)=뉴트럴 그레이그린 · 본사업(.biz)=선명 그린 유지 */
.pcard .pc-stg.done{background:#e9ecea;color:#5a6472}
/* X2 워크스페이스 내부 admin 액션 버튼 = 네이비 (공개 1차 CTA '과제 신청'만 레드 유지 — 캐논)
   대상: ①초대 보내기(모달) ②저장(구성원 수정 모달) ③멤버 등록·초대 */
#inviteModal .btn-red,#personEditModal .btn-red,.adm-tools .btn-red{background:#18296e;color:#fff;box-shadow:none}
#inviteModal .btn-red:hover,#personEditModal .btn-red:hover,.adm-tools .btn-red:hover{background:#101f52}
/* X3(항목별 A/B 심각도 뱃지) = JS 편집 필요 → D2 라운드로 이월 */
/* D1 끝 */

/* ═══════════════════════════════════════════════════════════════════════════
   Explore 최종 (A안 · 검색 제거 · 순수 그리드 · 8pt 얼라인 · 2026-07-28)
   목표 = docs/design_ba_20260728/ba_explore_final.jpg. 정렬 축(x=224)은 무변경.
   전부 #explore 스코프 — .subhero/.exp-body/.cc-* 공유 클래스라 program·apply 무영향.
   ═══════════════════════════════════════════════════════════════════════════ */
/* 회색 subhero 밴드 제거 → 사례가 유일한 주인공인 흰색 단일 존 (§1 A안 핵심) */
/* explore .subhero 박스(bg·border·padding)는 D5 H2에서 `.subhero:not(.prog-top)` 단일 규칙으로 통일 — 중복 제거 */
#explore .subhero p{color:var(--ink-2);margin-top:12px}                      /* §2 제목→부제 12 · 명도 --ink-2 */
#explore .exp-body{padding-top:0}                                           /* §2 밴드 리듬 흡수(상단 40 제거) */
#explore #sectorFilter{margin:24px 0 32px}                                  /* §2 부제→필터 24 · 필터→카드 32 */
#explore .grid.g3{margin-top:0;gap:24px}                                    /* §2 그리드 잔여 마진 0 · §4 gap 20→24 */
/* §3 필터칩 = 36 높이(데스크탑)·inline-flex 중앙·14/600·활성 네이비(D1 유지) — 터치 44는 @media coarse 유지 */
#explore #sectorFilter .chip{height:36px;display:inline-flex;align-items:center;padding:0 16px;font-size:14px;font-weight:600}
/* §5 카드 내부 — 썸네일 266→200(overflow hidden·img cover: 실사 001·002 빈칸 방지)·바디 16 20 20·gap 8 */
#explore .case-card .cc-media{aspect-ratio:auto;height:200px;overflow:hidden}
#explore .case-card .cc-media img{width:100%;height:100%;object-fit:cover}
#explore .case-card .cc-body{padding:16px 20px 20px;gap:8px}
/* Explore 최종 끝 */

/* ═══════════════════════════════════════════════════════════════════════════
   Explore 인라인 AI 사례 찾기 (2026-07-28) — explore 상단 직접-타이핑 입력바(모달 폐기)
   → 니즈 입력 시 GPT-5.4로 가장 가까운 사례 1 + 대안 인라인. 검색 중엔 필터+그리드 숨김.
   ═══════════════════════════════════════════════════════════════════════════ */
/* 인라인 검색 입력바 (필터 위 · 말풍선 아이콘 + 직접 입력 + AI 매칭 라벨) */
#explore .exp-search{display:flex;align-items:center;gap:11px;width:100%;margin:24px 0 0;padding:0 16px;height:54px;border:1px solid #dde1ea;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}
#explore .exp-search:focus-within{border-color:#3350b5;box-shadow:0 0 0 3px rgba(51,80,181,.1)}
.exp-search-hint{flex:none;display:inline-flex;align-items:center;gap:6px;color:#a2abba;font-size:12px;font-weight:600;white-space:nowrap}
.exp-search-hint[hidden]{display:none}
.exp-search-hint kbd{font-family:var(--mono);font-size:11px;color:#8a93a3;background:#f1f3f7;border:1px solid #e3e7ef;border-radius:var(--r-sm);padding:1px 6px;line-height:1.5}
.exp-search input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:16px;font-family:var(--font);color:var(--ink)}
#explore .exp-search input:focus{box-shadow:none;border-color:transparent}   /* 전역 input:focus 링 제거 — 바깥 .exp-search 링만(두겹 방지) */
.exp-search input::placeholder{color:#98a1af}
.exp-search-x{flex:none;width:28px;height:28px;border:0;background:#eef0f4;border-radius:50%;color:#6b7280;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.exp-search-x[hidden]{display:none}
.exp-search-x:hover{background:#e0e4ea;color:#111}
.exp-search-go{flex:none;display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 15px;border:0;border-radius:8px;background:var(--navy);color:#fff;font-size:13px;font-weight:700;font-family:var(--font);cursor:pointer;white-space:nowrap;transition:background .15s}
.exp-search-go:hover{background:var(--navy-deep)}
.exp-search-go[hidden]{display:none}
@media(max-width:600px){#explore .exp-search{height:50px;padding:0 12px;gap:9px}.exp-search input{font-size:14px}.exp-search-hint{display:none}}   /* 줌감사 P1: 모바일서 'Enter로 분석' 힌트 숨김 → placeholder 전폭(단어 중간 잘림·힌트 충돌 해소·덜어내기) */

/* 인라인 결과 = AX 진단형(문제→접근→해결한 문제·성과). 검색 중 필터+그리드 대신 노출.
   에디토리얼: 장식(그라디언트·아이콘칩) 배제 · 타이포 위계·여백·근거 데이터로 승부 */
.exp-results[hidden]{display:none}
.exp-results{margin:20px 0 8px}
.exp-results.axi-loading{opacity:.5;transition:opacity .12s}
/* 의도 분석 블록 — 'AI가 이렇게 이해했어요'(영역·해결성격·핵심 키워드 근거) */
.axi-an{margin:2px 2px 22px;padding:16px 18px;background:#f7f9fc;border:1px solid #eef0f5;border-radius:16px}
.axi-an-eye{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);margin-bottom:9px}
.axi-an-q{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.2px;margin-bottom:8px}
.axi-an-q::before{content:"\201C"}.axi-an-q::after{content:"\201D"}
.axi-an-body{font-size:14px;color:var(--ink-2);line-height:1.7}
.axi-an-body b{color:var(--ink);font-weight:700}
.axi-kw{display:inline-block;font-size:12px;font-weight:700;color:var(--navy);background:#e9edfa;border-radius:8px;padding:1px 8px;margin:0 3px;line-height:1.5}
/* 분석 중(제출 직후 체감) */
.axi-analyzing{display:flex;align-items:center;gap:10px;padding:22px 4px;font-size:14px;color:var(--ink-2)}
.axi-dots{display:inline-flex;gap:4px}
.axi-dots i{width:6px;height:6px;border-radius:50%;background:var(--navy);opacity:.35;animation:axiDot 1s infinite ease-in-out}
.axi-dots i:nth-child(2){animation-delay:.16s}.axi-dots i:nth-child(3){animation-delay:.32s}
@keyframes axiDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.axi-dots i{animation:none}}
/* 가장 가까운 접근 — 정갈한 화이트 카드(네이비 hover) */
.axi-best{display:block;width:100%;text-align:left;border:1px solid #e4e7ee;border-radius:16px;padding:22px 24px;background:#fff;cursor:pointer;font-family:var(--font);transition:border-color .16s,box-shadow .16s;outline:none}
.axi-best.sel,.axi-best:hover,.axi-best:focus-visible{border-color:var(--navy);box-shadow:0 10px 30px rgba(24,41,110,.09)}
.axi-best-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.axi-best-cust{font-size:12px;font-weight:600;color:var(--ink-3);letter-spacing:.01em}
.axi-best-go{font-size:12px;font-weight:700;color:var(--navy);flex:none;white-space:nowrap}
.axi-best-h{font-size:21px;font-weight:800;color:var(--ink);line-height:1.3;letter-spacing:-.5px;margin-bottom:16px;text-wrap:balance}
.axi-best-h mark{background:none;color:var(--navy);font-weight:800}
.axi-best-row{display:grid;grid-template-columns:66px 1fr;gap:14px;padding:11px 0;border-top:1px solid #f0f2f6}
.axi-best-k{font-size:11px;font-weight:800;color:var(--ink-3);letter-spacing:.03em;padding-top:3px}
.axi-best-v{font-size:14px;color:#41495a;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.axi-best-out{color:var(--ink);font-weight:500}
/* 대안 = 담백한 리스트 행(섹터 태그 · 헤드라인 · 고객) */
.axi-eyebrow{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:22px 2px 6px}
.axi-alts{display:flex;flex-direction:column}
.axr{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;width:100%;padding:12px 12px;border:0;border-radius:12px;background:none;cursor:pointer;text-align:left;font-family:var(--font);transition:background .12s;outline:none}
.axr + .axr{border-top:1px solid #f2f4f8}
.axr.sel,.axr:hover,.axr:focus-visible{background:#f5f7fb}
.axr-sec{font-size:11px;font-weight:700;color:var(--navy);background:#eef1fb;border-radius:8px;padding:3px 9px;white-space:nowrap}
.axr-t{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.axr-t mark{background:none;color:var(--navy);font-weight:700}
.axr-cust{font-size:12px;color:var(--ink-3);white-space:nowrap;flex:none}
/* 신청 경로 */
.axi-foot{display:inline-block;margin:20px 2px 4px;font-size:13px;color:var(--ink-2);text-decoration:none;cursor:pointer}
.axi-foot b{color:var(--navy);font-weight:700}
.axi-foot:hover b{text-decoration:underline}
/* 매칭 없음 */
.axi-none{padding:30px 4px 26px}
.axi-none-t{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.3px}
.axi-none-s{font-size:13px;color:var(--ink-2);margin:9px 0 17px;line-height:1.65;max-width:460px}
@media(max-width:600px){.axi-best{padding:18px 18px}.axi-best-h{font-size:18px}.axr-cust{display:none}}
/* Explore 인라인 검색 끝 */

/* ═══════════════════════════════════════════════════════════════════════════
   D4 공개 화면 정합 (2026-07-28) — 확정 캐논·D1·A안을 나머지 화면으로 확산.
   styles.css 단독(index.html은 ?v 캐시버스팅만). 기준 뷰포트 1568.
   착수순서 §0→§2→§1→§3→§4→§5. 전 항목 라이브 실측이 스펙 '현행'과 일치 확인.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── §0 토큰 신설 (선행 · 이후 §1·§2가 참조) ── */
:root{
  --s-closed-bg:#e9ecea;   /* '종료' 상태 전용 — '정지/Drop'(--s-stop-*) 토큰 재사용 해소 */
  --s-closed-tx:#5a6472;
  --s-closed-dot:#5a6472;
}
/* --ink-2(#5a6472)·--ink-3(#9199a8)는 D1(위 :root)에 이미 존재 → 재선언 안 함 */

/* ── §2 '종료' 상태색 정정 (캐논: 3위치 동일 #5a6472 · Drop은 레드 유지) ── */
.ps-closed{background:var(--s-closed-dot)}                                     /* X1a 파이프 범례 점: --s-stop-dot(#c25054 레드) → 종료토큰 */
#wsDash .d-seg[title^="종료"]{background:var(--s-closed-dot)!important}         /* X1b 대시 단계별 바 종료 세그(#1e6b45 그린 → · 색이 JS inline이라 !important) */
#wsDash .d-legi[data-stage="종료"] .dot{background:var(--s-closed-dot)!important} /* X1b 대시 범례 종료 점(동일) */
.pc-stg.done{background:var(--s-closed-bg);color:var(--s-closed-tx)}           /* X1c 파이프 상태칩: 리터럴 → 토큰화(렌더값 #e9ecea/#5a6472 불변) */
/* D4 §0·§2 끝 */

/* ── §1 서브히어로 3화면 통일 (explore 정본 · apply 정합 · program 부제만) ── */
.subhero:not(.prog-top){background:#fff;border-bottom:0;padding:48px 0 0}   /* S1(D4)+H2(D5): 공개 subhero 통일 · program(.prog-top)만 예외 = 의도를 코드에 명시. explore 전용 중복규칙(위)은 제거 */
#apply .subhero p{color:var(--ink-2)}                                                 /* S3 apply 부제 #666→#5a6472 (explore는 기존 규칙에서 이미) */
.prog-hero-band .subhero p{color:var(--ink-2)}                                        /* S3 program 부제 #666→#5a6472 (배경·padding은 그라디언트 밴드 연동 → 유지) */
.subhero .kicker{display:block;line-height:1}                                         /* S4 kicker inline→block+lh1 (라인박스 leading 제거 → kicker↓h2 gap = h2 mt · 3화면 16) */
#apply .subhero h2,.prog-hero-band .subhero h2{margin-top:16px!important}             /* S5 apply·program 인라인 mt12→16 (explore 인라인 16 불변 · index 무접촉이라 !important) */
/* D4 §1 끝 */

/* ── §3 apply "다음 →" 네이비화 (캐논: 레드=공개 1차 CTA 전용) ── */
#apply .btn-red[data-act="apgo"]{background:#18296e;box-shadow:none}           /* 스텝1·2 "다음 →"(data-act=apgo)만 · 최종제출[data-act=apsubmit] '신청 접수'는 레드 유지 */
#apply .btn-red[data-act="apgo"]:hover{background:#101f52}
/* D4 §3 끝 */

/* ── §4 버튼 체계 이탈 2건 ── */
.cs-ctrl .ncta{border-radius:8px}          /* B1 전 버튼 중 유일 pill 999→8 (모양 체계 정합 · 색·크기 불변) */
.hero .cta .btn-line{padding:15px 30px}    /* B2 히어로 고스트 12/20→15/30 (나란한 레드 CTA와 내부여백 통일 · 높이 48 유지) */
/* D4 §4 끝 */

/* ── §5 사례상세 h2 자간 통일 ── */
.cd-top h2{letter-spacing:-1px}            /* S5 -0.8→-1 (4화면 h2 자간 통일 · line-height 1.34는 다크·긴제목 여유라 유지) */
/* D4 §5 끝 · D4 전체 끝 */

/* ═══════════════════════════════════════════════════════════════════════════
   D5 홈 피드백 반영 (2026-07-28) — F1 로고월 간격 · F2 스텝 이미지 · F3 팀 섹션.
   styles.css + index.html(band-cases 클래스 · team-foot 블록). 기준 뷰포트 1568.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── §1 사례 섹션 ↔ 로고월 간격 (F1) ── */
/* :has() 미지원 리스크 제거 위해 케이스 섹션에 .band-cases 클래스 직접 부여(사장님 대안).
   section.band{padding:var(--sec) 0}(0,1,1)를 이기려면 .band.band-cases(0,2,0) 필요 */
.band.band-cases{padding-bottom:64px}   /* SA30: 16888 복원(상단 132·하단 64) */
.car-dots{margin-top:24px}                   /* 카드→페이저 38→24 */
.band.logo-band{padding:64px 0 88px}   /* SA30: 16888 복원 */
/* D5 §1 끝 */

/* ── §2 01~04 스텝 이미지 잘림 (F2) ── */
/* 110px 박스 cover = 아트워크(원본 y60~210) 상18·하28 잘림. contain 금지(폭 287로 줄어 좌우 437 여백).
   176px면 보이는 원본 구간 y47~213 → 아트워크 통째로. 카드 218→284·2×2 유지 */
.numcard > img{height:176px}
/* D5 §2 끝 */

/* ── §3 팀 섹션 좌측 하단 공백 채움 (F3) ── */
/* 2열 유지(3열/center 금지 — 아래 .grid.g3 3열과 중복 회피·우측 카드 상단 잘림 회피).
   좌측 컬럼 flex column + stretch → team-foot을 margin-top:auto로 하단 정렬(공백 330 채움) */
/* SA24 §B (P2·P3): start+margin40 → stretch+margin-auto 로 회귀. 좌열을 우측 카드그리드
   높이로 늘리고 team-foot만 바닥에 붙여 좌우 하단 y좌표 일치(P2 ≤8px). space-between 금지
   (제목·부제까지 벌어짐). h2 margin-top:-9px 는 leading 상쇄 광학보정 — 지우지 말 것. */
.team-split{align-items:center}   /* SA29 §B: stretch→center. margin-auto 바닥고정이 문단↔통계 113px 구멍 생성 → 좌우 세로중앙+통계 문단 바로 아래(구멍 제거) */
.team-head{display:flex;flex-direction:column}
.team-head h2{margin-top:-9px}
.team-head > p{margin-top:16px}
.team-head .team-foot{margin-top:32px}   /* SA29 §B: auto→32px (문단↔통계 32px·구멍 없음) */
.team-split .teamcard{padding:24px 36px}   /* 30→24: 카드 높이 145→133 밀도 개선 */
.team-split .teamgrid{gap:16px}            /* 18→16 (8배수) */
.team-foot{padding-top:32px;border-top:1px solid #e7eaf0}
.team-foot .n{font-size:64px;font-weight:800;letter-spacing:-2px;color:#18296e;line-height:1}
.team-foot .l{font-size:14px;color:var(--ink-2);margin-top:8px}
.team-foot .team-mini{font-size:13px;font-weight:600;color:var(--ink-3);margin-top:14px;letter-spacing:.01em}   /* 팀 구성 보조 라인(muted·레드 미사용) */
/* D5 §3 끝 · D5 전체 끝 */

/* ═══════════════════════════════════════════════════════════════════════════
   D6 홈 피드백 마감 (2026-07-28) — §2-A 프레임워크 도구 접기 · §3 FAQ 콘솔 · §4 폴리시.
   (§1 team-foot 버튼 제거는 위 D5 team-foot 블록 편집 · §2-B 탭은 기존 methtab 활용)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── §2-A 발굴 판단 도구(우선순위 매트릭스+Layer 피라미드 1201px) 접기 ── */
/* app.js deepDiveHTML을 <details class="df-tools">로 감쌈 → Discovery 기본 로드 시 섹션 2337→~1186px */
/* .df-tools(D6 §2-A details 접기) 제거 — D7 §2에서 deepDive를 독립 섹션으로 분리하며 미사용 */
/* D6 §2-A 끝 */

/* ── §3 FAQ 콘솔(홈 콘텐츠 관리) — 워크스페이스라 레드 0·네이비 ── */
.faqc-top{margin:2px 0 14px}
.faqc-add{height:36px;padding:0 16px;border-radius:8px;border:1px solid #cdd3e0;background:#fff;color:#18296e;font-weight:700;font-size:14px;cursor:pointer;font-family:var(--font)}
.faqc-add:hover{border-color:#18296e;background:#f4f6fb}
.faqc-list{display:flex;flex-direction:column;gap:8px}
.faqc-empty{padding:22px 4px;color:var(--muted);font-size:14px}
.faqc-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.faqc-row.review{border-left:3px solid var(--s-warn-dot);background:#fffdf8}
.faqc-b{min-width:0;flex:1}
.faqc-q{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.faqc-badge{font-size:11px;font-weight:700;background:var(--s-warn-bg);color:var(--s-warn-tx);border-radius:8px;padding:2px 8px;letter-spacing:.01em}
.faqc-off{font-size:11px;font-weight:600;background:var(--s-idle-bg);color:var(--s-idle-tx);border-radius:8px;padding:2px 8px}
.faqc-a{font-size:13px;color:var(--ink-2);margin-top:5px;line-height:1.5}
.faqc-a i{color:var(--muted2)}
.faqc-acts{display:flex;align-items:center;gap:7px;flex:none}
.faqc-sort{font-size:12px;color:var(--muted2);font-variant-numeric:tabular-nums;white-space:nowrap}
.faqc-mini{height:30px;padding:0 11px;border-radius:8px;border:1px solid #dfe3ea;background:#fff;color:#5a6472;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font);white-space:nowrap}
.faqc-mini:hover{border-color:#18296e;color:#18296e}
.faqc-mini.on{border-color:#18296e;color:#18296e;background:#eef1fb}
.faqc-mini.del:hover{border-color:var(--s-stop-dot);color:var(--s-stop-tx)}
.faqc-form{border:1px solid #c7cfe0;border-radius:12px;padding:16px 16px 14px;background:#fbfcff}
.faqc-form label{display:block;font-size:12px;font-weight:700;color:var(--ink-soft);margin:10px 0 5px}
.faqc-form label:first-child{margin-top:0}
.faqc-form input,.faqc-form textarea{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-family:var(--font);color:var(--ink)}
.faqc-form textarea{resize:vertical;line-height:1.5}
.faqc-frow{display:flex;align-items:center;gap:20px;margin-top:12px;flex-wrap:wrap}
.faqc-nl{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ink-soft);margin:0!important}
.faqc-nl input{width:80px}
.faqc-cl{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink2);margin:0!important;cursor:pointer}
.faqc-cl input{width:auto}
.faqc-formact{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.faqc-save{min-width:80px;height:36px}
@media(max-width:768px){.faqc-row{flex-direction:column}.faqc-acts{width:100%;justify-content:space-between}}
/* D6 §3 끝 */

/* ── §2-B 프레임워크 탭 — 탭 전환·4단계 콘텐츠는 기존 methtab로 이미 동작.
   유일 보완: 노드 focus/딥링크 스크롤 시 sticky 헤더(77) 가림 해소 ── */
.df-node{scroll-margin-top:90px}
#methRoot{scroll-margin-top:90px}
/* D6 §2-B 끝 */

/* ═══════════════════════════════════════════════════════════════════════════
   D7 공개 화면 감사 반영 (2026-07-28) — §1 프로세스 4단 · §4 타입 · §5 터치타깃.
   (§2 발굴도구 분리·§3 카피는 app.js · §6 데드코드는 no-op)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── §1 홈 프로세스 "발굴부터 사업 전환까지" 4단 가로 (섹션 1100→≤700) ── */
.band.band-process{padding:104px 0}                      /* SA30: 16888 복원 104/104 */
.numgrid{grid-template-columns:repeat(4,1fr);gap:16px}    /* 2×2 → 4단 */
.numcard > img{height:132px}                              /* D5 176 → 132(4단 폭에 맞춤·아트워크 y60~210 유지) */
.numcard .numinner{padding:18px 20px}
.numcard h3{font-size:16px}
@media(max-width:1024px){.band-process .numgrid{grid-template-columns:repeat(2,1fr)}}   /* 태블릿 2단(L401 1fr override) */
@media(max-width:600px){.band-process .numgrid{grid-template-columns:1fr}.numcard>img{height:150px}}  /* 모바일 1단 + img 150 */
/* D7 §1 끝 */

/* ── §4 explore 카드 본문 타입 하한 (에이전트명·성과문구 12.5→14) ── */
#explore .case-card .cc-body .case-agent,#explore .case-card .cc-body .eff{font-size:14px}   /* D1 12.5 override · #explore 스코프(홈 캐러셀 무영향) */
/* D7 §4 끝 */

/* ── §5 모바일 터치타깃 44 (히트영역만·시각 유지·pointer:coarse라 데스크탑 불변) ── */
@media(pointer:coarse){
  .nav-burger{min-width:44px;min-height:44px}   /* 42→44 (시각 span 22×2px 유지·클릭 박스만 확대) */
  .btn.nav-cta{min-height:44px}                 /* 헤더 CTA 36 특이도(.btn) 넘겨 히트 44(터치기기만) */
  .nav-links a{min-height:44px}                 /* 나브 링크 히트 44(텍스트 16 중앙·기존 generic a 규칙 명시) */
}
/* D7 §5 끝 */

/* ── §2 발굴 판단 도구 = 프레임워크 밖 독립 섹션(#discoveryTools) ── */
/* .df-deepdive는 프레임워크 상세 내부용 스타일(점선 상단·그라디언트)이었음 → 독립 섹션에선 제거(섹션 sec-head가 헤더 역할) */
#discoveryTools .df-deepdive{margin-top:0;padding-top:0;border-top:0;background:none}
/* D7 §2 끝 · D7 전체 끝 */

/* ══════════ SA22 §A · 디자인 시스템 v1 Phase 1 — 섹션 리듬 정상화 (2026-07-28) ══════════ */
/* 리듬 원칙(§A.1)=섹션 padding-top만 소유·이전 섹션 padding-bottom:0. 단, 전역 이관 시
   D4~D7에서 개별 튜닝된 10+ 섹션 간격이 전부 변해 AC "픽셀 변화 0" 위반 →
   AC가 명시한 이중 패딩 2곳에만 국소 적용(명시 클래스·D5/D7 선례). 그 외 간격 전부 불변. */
/* ① 홈 팀→성과 죽은여백 296→96 : team pb(132)+proof pt(164)=296 ⇒ team pb:0 + proof pt:96 */
/* SA24 §H·P8: 섹션 리듬 토큰(--sec-y 96·--sec-y-tight 56) 단일 출처. 배경이 바뀌는 경계(P3)는
   앞 섹션이 하단 여백을 소유 → 재사용 유틸 .band--bgedge. 전 bg경계 clearance ≥132px 실측(밀착 0). */
.band--bgedge{padding-bottom:var(--sec-y)}
/* SA30: band-team 패딩 override 제거 → base 132/132(16888과 동일·헤딩 상단여백 복원) */
/* SA30: band-proof 패딩 override 제거 → .band.panel 164/150(16888과 동일) */
/* ② 프로그램 프레임워크→발굴도구 죽은여백 264→56 : fw pb(132)+tools pt(132)=264 ⇒ fw pb:0 + tools pt:56 */
.band.band-framework{padding-bottom:0}             /* framework 하단 132→0 (framework 상단 pt132 불변→Why→fw 282 유지) */
.band.band-tools{padding-top:var(--sec-y-tight)}   /* SSOT §H: 발굴도구 tight 56(framework→tools 죽은여백 56 유지) */

/* ══════════ SA22 §C · explore 카드 구분 (2026-07-28) ══════════ */
/* 진단: 흰 카드가 흰 배경에 묻힘 → 카드 뒤 회색 캔버스(--surface-2)로 카드를 띄움.
   hover 리프트(-6px)는 이미 리치 → 유지. 정지 그림자만 회색 위 부양 위해 소폭 보강(.07→.10). 간격 24 유지. */
/* SA24 §C (P3): 캔버스를 explore 컨테이너로 승격 + subhero/exp-body 투명 → 제목~검색 이음새 소멸.
   흰 카드만 회색 캔버스 위로 부양. subhero는 explore 스코프로만 투명(program/apply 회귀 방지). */
#explore{background:var(--surface-2)}
#explore .subhero{background:transparent}
#explore .exp-body{background:transparent}
#explore .case-card{box-shadow:0 2px 5px rgba(16,24,64,.05),0 14px 30px rgba(16,24,64,.10)}   /* 정지 부양 강화(explore 스코프·공유 .case-card 무영향) */
#explore .case-card:hover{box-shadow:0 8px 20px rgba(16,24,64,.12),0 28px 56px rgba(16,24,64,.18)}   /* hover 그림자 확대(ID 특정성 역전 방지 · transform -6px는 공유 .case-card:hover 유지) */
