/*
 * CTiS public design system
 * One visual contract for the editorial, workbench and retained legacy pages.
 * Load this file after page-specific styles so the shared identity stays stable.
 */
@font-face{font-family:Pretendard;src:url('/assets/main/fonts/pretendard/Pretendard-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Pretendard;src:url('/assets/main/fonts/pretendard/Pretendard-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Pretendard;src:url('/assets/main/fonts/pretendard/Pretendard-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Pretendard;src:url('/assets/main/fonts/pretendard/Pretendard-Bold.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --ctis-color-ink:#202b36;
  --ctis-color-muted:#657180;
  --ctis-color-brand:#087f72;
  --ctis-color-brand-strong:#05685f;
  --ctis-color-brand-soft:#eef8f5;
  --ctis-color-surface:#fff;
  --ctis-color-canvas:#f7f9fb;
  --ctis-color-line:#e1e7ec;
  --ctis-color-line-strong:#b7c4ce;
  --ctis-color-info:#1b69b7;
  --ctis-color-warning:#8a5c18;
  --ctis-color-danger:#963e39;
  --ctis-font-sans:Pretendard,"Noto Sans KR",system-ui,-apple-system,sans-serif;
  --ctis-container:1280px;
  --ctis-page-gutter:40px;
  --ctis-radius-xs:2px;
  --ctis-radius-sm:4px;
  --ctis-radius-md:8px;
  --ctis-shadow-raised:0 16px 45px rgba(28,48,39,.08);

  /* Existing page contracts mapped to the same palette. */
  --ctis-ink:var(--ctis-color-ink)!important;
  --ctis-green:var(--ctis-color-brand)!important;
  --ctis-muted:var(--ctis-color-muted)!important;
  --ctis-line:var(--ctis-color-line)!important;
  --ctis-paper:var(--ctis-color-canvas)!important;
  --ink:var(--ctis-color-ink)!important;
  --green:var(--ctis-color-brand)!important;
  --green2:var(--ctis-color-brand-strong)!important;
  --muted:var(--ctis-color-muted)!important;
  --line:var(--ctis-color-line)!important;
  --paper:var(--ctis-color-surface)!important;
  --wash:var(--ctis-color-canvas)!important;
  --bg:var(--ctis-color-canvas)!important;
  --blue:var(--ctis-color-brand)!important;
  --pf-green:var(--ctis-color-brand)!important;
  --pf-green-dark:var(--ctis-color-brand-strong)!important;
  --pf-green-light:var(--ctis-color-brand-soft)!important;
}

html{accent-color:var(--ctis-color-brand)}
body{color:var(--ctis-color-ink);font-family:var(--ctis-font-sans);-webkit-font-smoothing:antialiased}
::selection{background:#dcebdd;color:var(--ctis-color-brand-strong)}
button,input,select,textarea{font-family:inherit}
a,button,input,select,textarea{transition:border-color .16s ease,background-color .16s ease,color .16s ease,opacity .16s ease}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(35,91,53,.3)!important;outline-offset:3px}

/* Shared page width and vertical rhythm. */
:where(.ctis-container,.mast-inner,.wrap,.layout){max-width:var(--ctis-container)}
:where(.ctis-container,.mast-inner,.wrap){width:min(var(--ctis-container),calc(100% - (var(--ctis-page-gutter) * 2)))}
:where(.ctis-home,.mast~main,body[data-view]) h1,
:where(.ctis-home,.mast~main,body[data-view]) h2,
:where(.ctis-home,.mast~main,body[data-view]) h3{letter-spacing:-.035em;word-break:keep-all}

/* The two new headers use the same dimensions and navigation treatment. */
.ctis-masthead,.mast{min-height:88px;height:auto;background:var(--ctis-color-surface);border-bottom:1px solid var(--ctis-color-line);box-shadow:none}
.masthead-inner,.mast-inner{min-height:88px;height:auto;padding:0;gap:36px}
.ctis-logo img,.mast .logo img{width:176px;height:auto}
.ctis-primary,.mast .nav{gap:32px}
.ctis-primary a,.mast .nav a{position:relative;color:#3e4942;font-size:15px;font-weight:600;line-height:1.4;padding:34px 0;text-decoration:none}
.ctis-primary a:hover,.mast .nav a:hover,.ctis-primary a[aria-current=page],.mast .nav a[aria-current=page]{color:var(--ctis-color-brand);background:transparent}
.ctis-primary a[aria-current=page]::after,.mast .nav a[aria-current=page]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--ctis-color-brand)}

/* Retained pages now use the same white masthead instead of image overlays. */
#header.header{height:9.8rem;background:var(--ctis-color-surface)!important;border-bottom:1px solid var(--ctis-color-line);box-shadow:none;position:sticky;top:0}
#header .header-container{max-width:var(--ctis-container);height:100%;margin:0 auto;padding:0 var(--ctis-page-gutter)}
#header.header .logo{width:20rem}
#header.header .logo a,#header.header.up .logo a,#header.header.active .logo a{height:5rem;background-image:url('/assets/main/img/layout/logo.webp')}
#header.header .header-menu{display:block;min-width:0;margin-left:auto}
#header.header .header-menu .gnb-menu>li>a{padding:0 3.2rem;color:var(--ctis-color-ink);font-size:1.7rem;font-weight:600}
#header.header .header-menu .gnb-menu>li>a:hover{color:var(--ctis-color-brand)}
#header.header .gnb-toggle-wrap{border-top-color:var(--ctis-color-line);box-shadow:0 24px 45px rgba(28,48,39,.08)}
#header.header .header-util>a,#header.header .header-util-login a,#header.header .header-util-wrap>a{color:var(--ctis-color-muted)}

/* Page banners and hierarchy. */
.hero{background:var(--ctis-color-brand)}
body[data-view="updates"] .hero,body[data-view="official"] .hero,body[data-view="media"] .hero{background:transparent}
.eyebrow,.home-label{font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.sub-visual{background:#234e35!important;color:#fff}
.sub-visual::before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,rgba(15,52,29,.18),rgba(15,52,29,.02));pointer-events:none}
.sub-visual>.layout{position:relative}
.sub-visual .h-tit{font-family:var(--ctis-font-sans);font-weight:600;letter-spacing:-.04em}
.sub-visual .breadcrumb a.home{color:#dcebc6}

/* Tabs and cross-service navigation share one underline pattern. */
.tabs-shell,.ct-subnav{background:var(--ctis-color-surface);border-bottom:1px solid var(--ctis-color-line)}
.tabs a,.tabs button,.ct-subnav .ct-tabs a{color:var(--ctis-color-muted);font-weight:600;border-bottom-color:transparent}
.tabs .active,.ct-subnav .ct-tabs a.on{color:var(--ctis-color-brand);border-bottom-color:var(--ctis-color-brand)}
.ct-subnav .ct-groups{gap:.8rem}
.ct-subnav .ct-groups a{border-color:var(--ctis-color-line-strong);border-radius:var(--ctis-radius-xs);color:#526057}
.ct-subnav .ct-groups a:hover{border-color:var(--ctis-color-brand);color:var(--ctis-color-brand)}
.ct-subnav .ct-groups a.on{background:var(--ctis-color-brand);border-color:var(--ctis-color-brand);color:#fff}
.ctis-global-menu>li>a[aria-current=page]{color:var(--ctis-color-brand)!important;position:relative}
.ctis-global-menu>li>a[aria-current=page]::after{content:"";position:absolute;left:3.2rem;right:3.2rem;bottom:0;height:3px;background:var(--ctis-color-brand)}
.ct-subnav.ctis-top-subnav,.tabs-shell.ctis-top-subnav{position:relative;z-index:9;border-top:0;box-shadow:0 8px 24px rgba(28,48,39,.035)}
.ct-subnav.ctis-top-subnav>.layout{width:min(100%,var(--ctis-container));max-width:100%;margin-left:auto;margin-right:auto;overflow:hidden}
.ct-subnav.ctis-top-subnav .ct-tabs{width:100%;max-width:100%;min-height:58px;align-items:stretch;gap:0!important;overflow-x:auto}
.tabs-shell.ctis-top-subnav .tabs{width:100%;max-width:100%;overflow-x:auto}
.ct-subnav.ctis-top-subnav .ct-tabs a{display:flex;align-items:center;padding-top:1.4rem;padding-bottom:1.2rem}
.ctis-local-nav{background:var(--ctis-color-surface);border-top:1px solid var(--ctis-color-line);border-bottom:1px solid var(--ctis-color-ink)}
.ctis-local-nav-groups{display:flex;align-items:stretch;width:100%;max-width:100%;min-width:0;gap:0!important;overflow-x:auto;scrollbar-width:thin}
.ctis-local-nav .ct-nav-group{min-height:60px}
.ctis-local-nav .ct-nav-group-label{color:#89928a;font-size:10px;letter-spacing:.06em}
.ctis-local-nav .ct-nav-group-links{gap:0}
.ctis-local-nav .ct-nav-group-links a{display:flex;align-items:center;padding-left:15px;padding-right:15px;font-size:14px;font-weight:600;white-space:nowrap}
.ctis-local-nav .ct-nav-group-links a.on,.ctis-local-nav .ct-nav-group-links a.active,.ctis-local-nav .ct-nav-group-links a[aria-current=page]{color:var(--ctis-color-brand);border-bottom-color:var(--ctis-color-brand)}
.ctis-local-nav-utility{display:flex;align-items:stretch;margin-left:auto;min-width:max-content;border-left:1px solid var(--ctis-color-line)}
.ctis-local-nav-utility a{color:var(--ctis-color-muted);font-size:12px!important;font-weight:500!important}
.ct-nav-group{display:flex;align-items:stretch;flex:0 0 auto;border-right:1px solid var(--ctis-color-line);padding:0 20px}
.ct-nav-group:first-child{padding-left:0}
.ct-nav-group:last-child{padding-right:0;border-right:0}
.ct-nav-group-label{display:flex;align-items:center;padding:0 12px 0 0;color:#8a948c;font-size:11px;font-weight:600;letter-spacing:.04em;white-space:nowrap}
.ct-nav-group-links{display:flex;align-items:stretch;gap:22px}
.tabs-shell .ct-nav-group{min-height:58px}
.tabs-shell .ct-nav-group-links a{display:flex;align-items:center;white-space:nowrap}
html[data-navigation-ready=true] .sub-visual{padding-top:3.2rem!important;padding-bottom:2.6rem!important}

/* A page-level view switcher sits below the four-stat menu and above query controls. */
.ctis-view-nav{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px;padding:12px 16px;border:1px solid var(--ctis-color-line);border-radius:var(--ctis-radius-md);background:#f7f9f6}
.ctis-view-nav-main{display:flex;align-items:center;gap:14px;min-width:0}
.ctis-view-nav-label{flex:0 0 auto;color:#68756c;font-size:13px;font-weight:600}
.ctis-view-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ctis-view-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 14px;border:1px solid #c8d2ca;border-radius:999px;background:#fff;color:#405047;font-size:14px;font-weight:600;text-decoration:none}
.ctis-view-tabs a:hover,.ctis-view-tabs a:focus-visible{border-color:var(--ctis-color-brand);color:var(--ctis-color-brand)}
.ctis-view-tabs a[aria-current=page]{border-color:var(--ctis-color-brand);background:var(--ctis-color-brand);color:#fff}
.ctis-view-related{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:8px 2px;color:var(--ctis-color-brand);font-size:13px;font-weight:600;text-decoration:none}
.ctis-view-related::before{content:"";width:1px;height:22px;margin-right:12px;background:var(--ctis-color-line)}
.ctis-view-related[aria-current=page]{color:var(--ctis-color-ink);font-weight:700}

/* The four statistics share one body template below page-level navigation. */
.ctis-stat-content>.layout,.ctis-stat-content>.layout>.contents-body>.layout{display:flex;flex-direction:column}
.ctis-query-panel{margin:0 0 24px;border:1px solid var(--ctis-color-line);border-radius:var(--ctis-radius-md);background:#f7f8f6;overflow:hidden}
.ctis-query-heading{display:flex;align-items:baseline;gap:12px;padding:14px 18px 12px;border-bottom:1px solid var(--ctis-color-line);background:#fff}
.ctis-query-heading strong{color:var(--ctis-color-ink);font-size:15px;font-weight:700}
.ctis-query-heading span{color:var(--ctis-color-muted);font-size:13px}
.ctis-query-panel form{padding:16px 18px!important;border:0!important;border-radius:0!important;background:transparent!important}
.ctis-query-panel form .form{justify-content:flex-start!important;min-height:46px}
.ctis-query-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:14px 18px 16px}
.ctis-query-options a{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border:1px solid #cbd4cc;border-radius:var(--ctis-radius-sm);background:#fff;color:#435148;font-size:14px;font-weight:600;text-align:center;text-decoration:none}
.ctis-query-options a:hover,.ctis-query-options a:focus-visible{border-color:var(--ctis-color-brand);color:var(--ctis-color-brand)}
.ctis-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:4px 0 16px!important}
.ctis-section-heading-text{min-width:0}
.ctis-section-eyebrow{display:block;margin-bottom:5px;color:var(--ctis-color-brand);font-size:12px;font-weight:700;letter-spacing:.08em}
.ctis-section-heading h3,.ctis-section-heading .h3{margin:0!important;color:var(--ctis-color-ink);font-size:24px!important;font-weight:700;line-height:1.42}
.ctis-stat-content .number-box.mt60,.ctis-stat-content .graph-wrap.mt60{margin-top:0!important}
.ctis-stat-content .number-box{margin-bottom:28px}
.ctis-stat-content .number-box-item,.ctis-stat-content .graph-wrap-item,.ctis-stat-content .border-box{border-radius:var(--ctis-radius-md)}
.ctis-stat-content .graph-wrap-item{background:#f5f7f4}
.ctis-stat-content .graph-wrap-item .cont{border-color:var(--ctis-color-line);border-radius:var(--ctis-radius-md)}
.ctis-stat-content [id^="activity-"]{scroll-margin-top:18rem}

/* Controls, cards, tables and status labels. */
:where(.control,input:not([type=checkbox]):not([type=radio]),select,textarea){border-color:#cbd4cc;border-radius:var(--ctis-radius-xs);background:var(--ctis-color-surface);color:var(--ctis-color-ink)}
:where(.button,.btn,.btn1){border-radius:var(--ctis-radius-xs);font-weight:600}
.button.primary,.btn.primary,.btn1.green{background:var(--ctis-color-brand);border-color:var(--ctis-color-brand);color:#fff}
.button.primary:hover,.btn.primary:hover,.btn1.green:hover{background:var(--ctis-color-brand-strong);border-color:var(--ctis-color-brand-strong);color:#fff}
:where(.panel,.metric,.source-card,.catalog-card,.prof-metric,.prof-related-card){border-color:var(--ctis-color-line);border-radius:var(--ctis-radius-sm);box-shadow:none}
.panel:focus-within{border-color:var(--ctis-color-line-strong)}
:where(.tag,.badge,.status,.pill,.prof-leader,.prof-table .group-pill){border-radius:var(--ctis-radius-xs)}
:where(.tag,.badge){background:var(--ctis-color-brand-soft);color:#42604b}
:where(table,.table table,.prof-table){font-variant-numeric:tabular-nums}
:where(th,.table table th,.prof-table th){background:#f5f7f3;color:#59665e;font-weight:600;border-color:var(--ctis-color-line)}
:where(td,.table table td,.prof-table td){border-color:#e5eae5}
:where(.data-note,.note,.stats-meta-note){border-radius:var(--ctis-radius-xs)!important;box-shadow:none!important}
.board-topbox{border-radius:var(--ctis-radius-sm);background:#f5f7f3;border-color:var(--ctis-color-line)}
.board-topbox-icon{background:var(--ctis-color-brand-soft);color:var(--ctis-color-brand)}
.btn-list>li{border-color:var(--ctis-color-line);border-radius:var(--ctis-radius-sm)}

/* Technology profiles no longer introduce a separate blue product identity. */
.prof-hero{border-radius:var(--ctis-radius-sm)}
.prof-mapping,.prof-placeholder-notice{border-radius:var(--ctis-radius-sm);box-shadow:none}
.prof-h3{border-left-color:var(--ctis-color-brand)}

/* Footers use one quiet neutral surface throughout public services. */
.ctis-footer,.mast~main~footer,body[data-view] .ctis-footer{background:#f1f3ef;color:var(--ctis-color-muted);border-top:1px solid var(--ctis-color-line)}
.footer{background:#202b36;color:#fff}
.footer .layout{max-width:var(--ctis-container)}

@media(max-width:1280px){
  #header .header-container{padding-left:40px;padding-right:40px}
}
@media(max-width:850px){
  :root{--ctis-page-gutter:24px}
  .ctis-masthead,.mast{min-height:72px}
  .masthead-inner,.mast-inner{min-height:72px;gap:22px}
  .ctis-logo img,.mast .logo img{width:155px}
  .ctis-primary,.mast .nav{gap:22px}
  .ctis-primary a,.mast .nav a{font-size:13px;padding:24px 0}
  #header.header{height:auto!important;min-height:72px}
  #header .header-container{height:auto;min-height:72px;padding:0 24px;gap:18px}
  #header.header .logo{width:15.5rem;flex:0 0 15.5rem}
  #header.header .header-menu{height:auto;overflow-x:auto;scrollbar-width:none}
  #header.header .header-menu .gnb-menu{min-width:max-content;gap:22px}
  #header.header .header-menu .gnb-menu>li>a{padding:2.5rem 0;font-size:1.4rem}
  .ctis-global-menu>li>a[aria-current=page]::after{left:0;right:0}
  .ct-subnav.ctis-top-subnav .layout{padding-left:0;padding-right:0}
  .ct-nav-group{padding:0 16px}.ct-nav-group-links{gap:18px}
}
@media(max-width:520px){
  :root{--ctis-page-gutter:20px}
  .masthead-inner,.mast-inner{align-items:flex-start;flex-wrap:wrap;padding-top:19px}
  .ctis-primary,.mast .nav{order:3;width:100%;max-width:100%;overflow:auto;padding:0;margin:0}
  .ctis-primary a,.mast .nav a{padding:13px 0}
  .ctis-primary a[aria-current=page]::after,.mast .nav a[aria-current=page]::after{height:2px}
  #header .header-container{display:block;padding:17px 20px 0}
  #header.header .logo{width:15rem}
  #header.header .logo a{height:4rem}
  #header.header .header-menu{width:100%;margin-top:10px}
  #header.header .header-menu .gnb-menu{justify-content:flex-start;gap:24px}
  #header.header .header-menu .gnb-menu>li>a{padding:1rem 0 1.3rem;font-size:1.3rem}
  .ct-subnav.ctis-top-subnav .layout{padding-left:0;padding-right:0}
  .ct-subnav.ctis-top-subnav .ct-tabs{gap:2.2rem}
  .ct-nav-group{padding:0 14px}.ct-nav-group-label{font-size:10px;padding-right:9px}.ct-nav-group-links{gap:16px}
  .ctis-view-nav{align-items:flex-start;flex-direction:column;gap:9px;padding:12px}
  .ctis-view-nav-main{align-items:flex-start;flex-direction:column;gap:8px;width:100%}
  .ctis-view-tabs{width:100%}
  .ctis-view-tabs a{flex:1 1 auto}
  .ctis-view-related{width:100%;padding:8px 2px 2px}
  .ctis-view-related::before{display:none}
  .ctis-query-heading{align-items:flex-start;flex-direction:column;gap:4px;padding:12px 14px}
  .ctis-query-panel form{padding:14px!important}
  .ctis-query-options{grid-template-columns:1fr 1fr;padding:12px 14px 14px}
  .ctis-section-heading{align-items:flex-start;flex-direction:column;gap:10px}
  .ctis-section-heading h3,.ctis-section-heading .h3{font-size:21px!important}
}
@media(prefers-reduced-motion:reduce){a,button,input,select,textarea{transition:none}}

/* 260929: compact the retained service banners across inventory and policy. */
html[data-navigation-ready=true] .sub-visual{height:auto!important;min-height:0!important;padding:30px 0!important}
html[data-navigation-ready=true] .sub-visual .layout{padding-top:0!important;padding-bottom:0!important}
html[data-navigation-ready=true] .sub-visual .h-tit{margin:0!important;font-size:32px!important}
html[data-navigation-ready=true] .sub-visual .breadcrumb{margin-top:14px!important}

/* 구조도 0923: 글로벌 정책 > 국내정책 > 시계열·입법트래커 */
.ct-nav-subgroup{display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--ctis-color-line)}
.ct-nav-subgroup-label{padding:8px 15px 0;font-size:11px;color:#67746b;font-weight:600}
.ct-nav-subgroup-links{display:flex;align-items:stretch}
.ctis-local-nav .ct-nav-subgroup-links a{padding-top:8px;padding-bottom:12px}
.ctis-service-breadcrumb{max-width:1280px;margin:12px auto;padding:0 24px;color:#59665d;font-size:12px;line-height:1.7}
.ctis-sitemap-tree{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding:24px;overflow:auto;max-height:80vh}
.ctis-sitemap-tree>li>a{font-size:20px;font-weight:700}
.ctis-sitemap-tree ul{display:grid;gap:12px;margin:16px 0;padding-left:12px}
.ctis-sitemap-tree strong{font-size:14px;color:#536858}
.ctis-sitemap-tree a{display:block;line-height:1.6;font-size:15px}
@media(max-width:700px){.ctis-sitemap-tree{grid-template-columns:1fr;max-height:85vh}}
.header-util-sitemap .topmenu_all.ctis-sitemap-tree{display:none;grid-template-columns:1fr;padding:16px}
.header-util-sitemap .topmenu_all.ctis-sitemap-tree.active{display:grid}
.header-util-sitemap .topmenu_all.ctis-sitemap-tree>li>a::after{display:none}
