:root {
  /* Expresso Universal Theme Semantic Bridge (Theme-First Single Source of Truth) */
  --theme-primary: var(--bs-primary, var(--ex-primary, #0d6efd));
  --theme-primary-rgb: var(--bs-primary-rgb, 13, 110, 253);
  --theme-primary-hover: var(--bs-primary-hover, var(--ex-primary-hover, #0b5ed7));
  --theme-primary-active: var(--bs-primary-active, #0a58ca);
  --theme-primary-subtle: var(--bs-primary-subtle, var(--ex-primary-subtle, #cfe2ff));
  --theme-secondary: var(--bs-secondary, #6c757d);
  --theme-bg: var(--bs-body-bg, #ffffff);
  --theme-surface: var(--ex-surface-bg, var(--bs-body-bg, #ffffff));
  --theme-surface-alt: var(--ex-surface-alt, #f8fafc);
  --theme-card-bg: var(--ex-surface-card, var(--theme-surface, #ffffff));
  --theme-border: var(--ex-border-color, #dee2e6);
  --theme-border-hover: var(--ex-border-color-hover, #ced4da);
  --theme-border-subtle: var(--ex-border-subtle, #e9ecef);
  --theme-text-heading: var(--ex-text-heading, #0f172a);
  --theme-text-body: var(--bs-body-color, #212529);
  --theme-text-muted: var(--ex-text-muted, #6c757d);
  --theme-radius-sm: var(--bs-border-radius-sm, 0.25rem);
  --theme-radius-md: var(--bs-border-radius, 0.375rem);
  --theme-radius-lg: var(--bs-border-radius-lg, 0.5rem);
  --theme-shadow-sm: var(--ex-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
  --theme-shadow-md: var(--ex-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));
  --theme-shadow-lg: var(--ex-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));

  --themeColor: var(--theme-primary);
  --linkColor: var(--theme-primary);
  --hoverColor: var(--theme-primary-hover);
  --backgroundColor: var(--theme-bg);
  --textColor: var(--theme-text-body);
  --mobileFontSize: 13px;
  --tabletFontSize: 14px;
  --desktopFontSize: 16px;

  /* Expresso Standard Design Tokens */
  --ex-primary: #0d6efd;
  --ex-primary-hover: #0b5ed7;
  --ex-primary-subtle: #cfe2ff;
  --ex-surface-bg: #ffffff;
  --ex-surface-alt: #f8fafc;
  --ex-surface-card: #ffffff;
  --ex-border-color: #dee2e6;
  --ex-border-subtle: #e9ecef;
  --ex-text-heading: #0f172a;
  --ex-text-body: #212529;
  --ex-text-muted: #6c757d;
  --ex-radius-sm: 0.25rem;
  --ex-radius-md: 0.375rem;
  --ex-radius-lg: 0.5rem;
  --ex-transition-base: all 0.15s ease-in-out;
}

.navy-theme {
  --backgroundColor: #f0f4f8;
  --textColor: #2a3b4c;
  --themeColor: #1a365d;
  --linkColor: #2b6cb0;
  --hoverColor: #2c5282;
}

.sepia-theme {
  --backgroundColor: #f4ecd8;
  --textColor: #43302e;
  --themeColor: #704214;
  --linkColor: #8b5a2b;
  --hoverColor: #5c3a21;
}

[data-bs-theme="dark"], .dark-theme, .board-theme-dark, [data-theme="dark"] {
  /* Expresso Standard Dark Tokens */
  --ex-primary: #3d8bfd;
  --ex-primary-hover: #6ea8fe;
  --ex-primary-subtle: #031633;
  --ex-surface-bg: #212529;
  --ex-surface-alt: #2b3035;
  --ex-surface-card: #1e2227;
  --ex-border-color: #495057;
  --ex-border-subtle: #373b3e;
  --ex-text-heading: #f8f9fa;
  --ex-text-body: #dee2e6;
  --ex-text-muted: #adb5bd;

  /* Dark Theme Semantic Tokens Bridge */
  --theme-primary: var(--bs-primary, var(--ex-primary, #3d8bfd));
  --theme-primary-hover: var(--bs-primary-hover, var(--ex-primary-hover, #6ea8fe));
  --theme-primary-subtle: var(--bs-primary-subtle, var(--ex-primary-subtle, #031633));
  --theme-bg: var(--bs-body-bg, #1a202c);
  --theme-surface: var(--ex-surface-bg, #212529);
  --theme-surface-alt: var(--ex-surface-alt, #2b3035);
  --theme-card-bg: var(--ex-surface-card, #1e2227);
  --theme-border: var(--ex-border-color, #495057);
  --theme-border-subtle: var(--ex-border-subtle, #373b3e);
  --theme-text-heading: var(--ex-text-heading, #f8f9fa);
  --theme-text-body: var(--bs-body-color, #dee2e6);
  --theme-text-muted: var(--ex-text-muted, #adb5bd);

  --backgroundColor: var(--theme-bg);
  --textColor: var(--theme-text-body);
  --themeColor: var(--theme-primary);
  --linkColor: var(--theme-primary);
  --hoverColor: var(--theme-primary-hover);
}

@media (max-width: 576px) { 
   html{
	font-size:  var(--mobileFontSize);
   }
}
@media (min-width: 577px) {
   html{
   font-size:var(--tabletFontSize);
   }
}
@media (min-width: 992px) { 
   html{
   font-size:var(--desktopFontSize);
   }
}
body {
  font-family: var(--fontFamily, var(--bs-body-font-family, 'Pretendard', "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif));
  color: var(--theme-text-body, var(--bs-body-color, var(--textColor)));
  background-color: var(--theme-bg, var(--bs-body-bg, var(--backgroundColor)));
  font-size: 1rem;
}
a{
  color:var(--linkColor);
}
a:hover{
  color:var(--hoverColor);
}
.theme-color, .tc-theme-color, .tc-theme, .none-theme{
  color:var(--themeColor)!important;
}
.theme-link-color{
  color:var(--textColor);
}
.theme-link-color:hover{
  color:var(--themeColor);
  text-decoration:none;  
}
.theme-hover-color:hover, .tc-theme-hover-color:hover{
  color:var(--themeColor)!important;
  text-decoration:none;
}
.show .theme-show-color{
  color:var(--themeColor)!important;
  text-decoration:none;  
}
.line-theme{
  border:1px solid var(--themeColor);
  color:var(--themeColor);
}
.theme-bgcolor, .bg-theme-color, .bg-theme, .fill-theme{
  background-color:var(--themeColor);
  color:#ffffff!important;
}
.hover-bg-theme-color:hover{
  background-color:var(--themeColor)!important;
  color:#ffffff!important;
}
.theme-bordercolor, .border-theme-color, .border-theme{
  border-color:var(--themeColor)!important;
}
.before-color-theme:before{
  content:'';
  color:var(--themeColor);
}
.before-bgcolor-theme:before{
  content:'';
  background-color:var(--themeColor);
}
.theme-hover-bg:hover{
  background-color:var(--themeColor); color:#ffffff;
}
.btn-line-theme{
  color:var(--themeColor); border:1px solid var(--themeColor); background-color:transparent;
}
.btn-line-theme:hover, .btn-line-theme:active, .btn-line-theme:focus{
  border:1px solid var(--themeColor); background-color:var(--themeColor); color:#ffffff;
}
.btn-fill-theme{
  border:1px solid var(--themeColor); background-color:var(--themeColor); color:#ffffff!important;
}
.btn-fill-theme:hover, .btn-fill-theme:focus, .btn-fill-theme:active, 
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-fill-theme:hover { 
  background-color: var(--themeColor) !important;
  border-color: var(--themeColor) !important;
  color:#ffffff!important;
  filter: brightness(90%);
}
.btn-none-theme{
  padding-left:0; padding-right:0;  padding-top:0; border:0; border-bottom:1px dotted var(--themeColor); color:var(--themeColor);background-color: transparent; text-decoration:none;  border-radius: 0;
}
.btn-none-theme:hover, .btn-none-theme:focus, .btn-none-theme:active{
  filter: brightness(80%);
  color:var(--themeColor);
  text-decoration:none;
}
/*check box radio button*/
.ex-checkbox input[type="checkbox"]:checked + label::after {
  color:var(--themeColor)
}
.ex-radio input[type="radio"]:checked + label::after{
  background-color:var(--themeColor)
}
/*table*/
.table.color.tabletype-theme>thead>tr>th{
  border-color:var(--themeColor); color:var(--themeColor);
}
.table.color.tabletype-theme{
  border-color:var(--themeColor); 
}
.table.color.tabletype-theme>thead>tr>th:first-child{
  border-color:var(--themeColor); 
}
.table.color.tabletype-theme>thead>tr>th:last-child{
  border-color:var(--themeColor); 
}
.table.color-head.tabletype-head-theme>thead>tr>th{
  background-color: var(--themeColor); border-color: var(--themeColor); color:#ffffff
}
/*header*/
.navbar-light .navbar-nav > .dropdown.show > .nav-link.disabled, 
.navbar-light .navbar-nav > .dropdown.show > .nav-link
.navbar-light .navbar-nav > .dropdown > .nav-link:hover{
    color: var(--themeColor);
}  
/*loader*/
.page-pre-loader .loader-group .loader {
  border-top-color: var(--themeColor);
}
/*paging*/
.pagination>.active .page-link, .pagination>.active>a, .pagination>.active>a:focus, .pagination>.active>a:hover, .pagination>.active>span, .pagination>.active>span:focus, .pagination>.active>span:hover {
    z-index: 3;
    color: #fff;
    cursor: default;
    background-color:var(--themeColor);
    border-color:var(--themeColor);
	border: 1px solid #dddddd;
}
.pagination>li>a:focus, .pagination>li>a:hover, .pagination>li>span:focus, .pagination>li>span:hover {
    z-index: 2;
    color:var(--themeColor);
    background-color: #eee;
    border-color: #ddd;
}
.pagination>li>a, .pagination>li>span {
    color: #aaaaaa;
    text-decoration: none;
    border: 1px solid #dddddd;
}

/* Custom Template Fix for Animation */
.nc-template {
    display: block;
}

/* 에디터 동적 인라인 스타일 이미지 비율 동기화 및 전역 반응형 왜곡 방지 */
/* 2026-11-06: 이미지 뷰어와 미리보기 카드는 자체 크기 계산을 쓰므로 제외 */
img:not(.lb-image, .gallery-carousel-item img) {
  max-width: 100% !important;
  height: auto !important;
}


/* ===== light Styles ===== */
[class*="-board-wrapper"].light-theme,
[class*="-board-wrapper"].board-theme-light {
    background-color: #ffffff;
    color: #333333;
    --primary-color: #007bff;
    --header-bg: #f8f9fa;
    --border-color: #dee2e6;
}
[class*="-board-wrapper"].light-theme .table,
[class*="-board-wrapper"].board-theme-light .table,
[class*="-board-wrapper"].light-theme .table > :not(caption) > * > *,
[class*="-board-wrapper"].board-theme-light .table > :not(caption) > * > * {
    background-color: #ffffff;
    color: #333333;
    border-color: #dee2e6;
}
[class*="-board-wrapper"].light-theme .table thead th,
[class*="-board-wrapper"].board-theme-light .table thead th {
    background-color: #f8f9fa;
    color: #333333;
    border-bottom: 2px solid #007bff;
}
[class*="-board-wrapper"].light-theme .btn-primary,
[class*="-board-wrapper"].board-theme-light .btn-primary,
[class*="-board-wrapper"].light-theme .pagination .active .page-link,
[class*="-board-wrapper"].board-theme-light .pagination .active .page-link {
    background-color: #007bff;
    border-color: #007bff;
}

/* ===== dark Styles ===== */
[class*="-board-wrapper"].dark-theme,
[class*="-board-wrapper"].board-theme-dark {
    background-color: #212529;
    color: #f8f9fa;
    --primary-color: #0dcaf0;
    --header-bg: #343a40;
    --border-color: #495057;
}
[class*="-board-wrapper"].dark-theme .table,
[class*="-board-wrapper"].board-theme-dark .table,
[class*="-board-wrapper"].dark-theme .table > :not(caption) > * > *,
[class*="-board-wrapper"].board-theme-dark .table > :not(caption) > * > * {
    background-color: #212529;
    color: #f8f9fa;
    border-color: #495057;
}
[class*="-board-wrapper"].dark-theme .table thead th,
[class*="-board-wrapper"].board-theme-dark .table thead th {
    background-color: #343a40;
    color: #f8f9fa;
    border-bottom: 2px solid #0dcaf0;
}
[class*="-board-wrapper"].dark-theme .btn-primary,
[class*="-board-wrapper"].board-theme-dark .btn-primary,
[class*="-board-wrapper"].dark-theme .pagination .active .page-link,
[class*="-board-wrapper"].board-theme-dark .pagination .active .page-link {
    background-color: #0dcaf0;
    border-color: #0dcaf0;
}

/* GNB와 본문 컨텐츠 간 상하 이격 제거 */
#gnbContainer,
#gnbContainer .nc-template,
#gnbContainer .nc-row,
#gnbContainer .nc-col {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
}
.header2 {
    margin-bottom: 0;
}
#expresso-body > #mainContainer > .nc-template:first-child,
#mainContainer > .nc-template:first-child {
    padding-top: 0;
}



