/* GTA 공용 베이스 — 타이포·포커스·모션·스켈레톤 (2026-07-07 시각 감사 1~3차 반영).
   원칙: 규제 산업 B2B 도구 — 신뢰·가독 우선, 절제된 모션. EY 브랜드(옐로·다크) 고정.
   각 페이지 인라인 <style> 뒤에 로드되어 공통 규칙을 덮는다. */

/* ── 타이포: Pretendard Variable 셀프호스팅 (SIL OFL, orioncactus/pretendard v1.3.9)
      CSP default-src 'self' 준수 — 동일 출처 서빙, 외부 요청 없음. */
@font-face{
  font-family:'Pretendard Variable';
  src:url('/static/PretendardVariable.woff2?v=139') format('woff2-variations');
  font-weight:45 920;font-style:normal;font-display:swap;
}
body{
  font-family:'Pretendard Variable',-apple-system,BlinkMacSystemFont,
    'Malgun Gothic','Apple SD Gothic Neo',sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3{letter-spacing:-.015em;text-wrap:balance}
p{text-wrap:pretty}

/* ── 포커스 링(키보드 내비게이션) — 접근성 필수. 마우스 클릭에는 안 뜬다(:focus-visible). */
:focus-visible{outline:2px solid #FFE600;outline-offset:2px;border-radius:4px}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:1px}

/* ── 인터랙션 물리 — 스프링형 이징, 프레스 피드백. transform/opacity만 사용(GPU). */
button,.btn,a.nav-item,a.subnav-item,a.agent-link,.qtab,.mcard,.otab,.pill,
.src-tab,.btn-dl,.sb-back,.newbtn,.hchip{
  transition:background-color .2s cubic-bezier(.32,.72,0,1),
             border-color .2s cubic-bezier(.32,.72,0,1),
             color .18s ease-out,
             transform .18s cubic-bezier(.32,.72,0,1),
             box-shadow .25s cubic-bezier(.32,.72,0,1);
}
button:active,.btn:active,.qtab:active,.otab:active,.src-tab:active{transform:scale(.98)}
button:disabled{transform:none}

/* ── 스켈레톤 로더 — 원형 스피너 대체(보고서 형태 암시) */
.gta-skel{padding:6px 0}
.gta-skel .ln{height:13px;border-radius:6px;margin:11px 0;
  background:linear-gradient(90deg,rgba(0,0,0,.055) 25%,rgba(0,0,0,.10) 45%,rgba(0,0,0,.055) 65%);
  background-size:220% 100%;animation:gtaShimmer 1.4s cubic-bezier(.4,0,.6,1) infinite}
.gta-skel .ln.w60{width:60%}.gta-skel .ln.w80{width:80%}.gta-skel .ln.w40{width:40%}
.gta-skel .ln.h{height:19px;width:45%;margin-top:20px}
@keyframes gtaShimmer{0%{background-position:200% 0}100%{background-position:-20% 0}}
@media (prefers-reduced-motion:reduce){
  .gta-skel .ln{animation:none}
  button,.btn{transition:none}
}

/* ── 히어로 텍스처(에이전트 페이지 다크 히어로 한정) — CSP 안전: 그라데이션만.
      은은한 옐로 글로우 + 극저대비 사선 결. index 챗 히어로(.content 밖)는 비적용. */
.content .hero{position:relative;overflow:hidden}
.content .hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(820px 300px at 8% -12%, rgba(255,230,0,.075), transparent 58%),
    radial-gradient(600px 260px at 96% 115%, rgba(255,255,255,.045), transparent 60%),
    repeating-linear-gradient(115deg, rgba(255,255,255,.012) 0 2px, transparent 2px 7px);
}
.content .hero>*{position:relative;z-index:1}

/* ── 그림자 정돈 — 배경 색조를 머금은 확산 그림자(순검정 저감) */
.mcard:hover{box-shadow:0 10px 30px rgba(46,46,56,.10),0 2px 8px rgba(46,46,56,.06)}

/* ── 다크 통일 (2026-07-07 사용자 지시 — 챗↔에이전트 이질감 제거)
      에이전트 7페이지 <body class="agent-dark"> 한정, 챗(index)과 동일 팔레트:
      bg #15151d · 패널 #1f1f2b · 라인 #2f2f3d · 사이드 #1a1a23. admin/login 비적용. */
body.agent-dark{
  --ey-light:#232330; --ey-border:#2f2f3d; --ey-gray:#9a9aa8; --panel:#1f1f2b;
  --ey-blue:#6FA5F6; --ey-green:#3DB584; --ey-amber:#D9A02B; --ey-red:#E2604F;
  --shadow:0 1px 3px rgba(0,0,0,.35),0 8px 28px rgba(0,0,0,.28);
  background:#15151d;color:#E6E6EC;
}
body.agent-dark .content{background:#15151d}
body.agent-dark .topbar{background:#1a1a23;border-bottom:1px solid #2f2f3d}
body.agent-dark .topbar h1{color:#ECECF1}
body.agent-dark .pill{background:#1f1f2b;color:#a8a8b6;border-color:#2f2f3d}
body.agent-dark .pill.live{color:#4fc08d;border-color:#2c4a3c;background:#182620}
/* 표면(패널·카드) — 하드코딩 #fff 일괄 패널색으로 */
body.agent-dark .mpane,body.agent-dark .opane,body.agent-dark .mcard,
body.agent-dark .diary-item,body.agent-dark .msteps,
body.agent-dark .ph,body.agent-dark .drawer,body.agent-dark .law-tag{background:#1f1f2b}
body.agent-dark .otab:hover{color:#ECECF1}
body.agent-dark .otab.on{color:#ECECF1;background:#1f1f2b}
/* 폼 컨트롤 */
body.agent-dark input[type=text],body.agent-dark input[type=number],
body.agent-dark input[type=date],body.agent-dark input:not([type]),
body.agent-dark select,body.agent-dark textarea{
  background:#15151d;color:#E6E6EC}
body.agent-dark table.itbl input:focus,body.agent-dark table.itbl select:focus{background:#15151d}
body.agent-dark .btn-ghost{background:#1f1f2b;color:#E6E6EC}
body.agent-dark .btn-ghost:hover{border-color:#8a8a96}
/* 보고서 본문 */
body.agent-dark .md strong{color:#fff}
body.agent-dark table.ctbl tr.tot th,body.agent-dark table.ctbl tr.tot td{background:#2e2a14}
body.agent-dark .chk-inline.ok{background:#182620}
/* 스켈레톤 — 다크용 시머 */
body.agent-dark .gta-skel .ln{
  background:linear-gradient(90deg,rgba(255,255,255,.055) 25%,rgba(255,255,255,.11) 45%,rgba(255,255,255,.055) 65%);
  background-size:220% 100%}
/* 카드 그림자 — 다크에서 과한 검정 저감 */
body.agent-dark .mcard:hover{box-shadow:0 10px 30px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.3)}
/* rnd 전용 잔여 — 고특이성 규칙·패널 헤더·스텝 도트·소스 탭 */
body.agent-dark textarea#raw{background:#15151d;color:#E6E6EC}
body.agent-dark .panel-h{background:#232330}
body.agent-dark .pstep .dot{background:#1f1f2b}
body.agent-dark .btn-dl,body.agent-dark .src-tab{background:#1f1f2b;color:#E6E6EC}
body.agent-dark .src-tab:hover{border-color:#8a8a96}
body.agent-dark .btn-dl:hover{color:#2E2E38}
/* 문서형 산출물(공문·연구노트) = 종이 카드 — 페인 단위로 라이트 변수 복원 */
body.agent-dark #pane-report,body.agent-dark #pane-note{
  --ey-light:#F6F6FA; --ey-border:#E1E1E6; --ey-gray:#62626e;
  --ey-blue:#155CB4; --ey-green:#1F9D6B; --ey-amber:#C8860A; --ey-red:#C0392B;
  background:#fcfcf9;color:#16161a}
