.lfr-layout-structure-item-container {padding: 0;} .lfr-layout-structure-item-row {overflow: hidden;} .portlet-borderless .portlet-content {padding: 0;}/* 1. PDF가 들어있는 가장 바깥쪽 상자 높이 강제 확대 */
.video, .aspect-ratio, .aspect-ratio-16-to-9 {
    padding-bottom: 0 !important; /* 기존의 16:9 비율 제한 해제 */
    height: 90vh !important;    /* 화면 높이의 90%만큼 시원하게 키움 */
    max-height: none !important;
}

/* 2. PDF 뷰어 프레임 자체의 높이 조절 */
iframe, #viewerContainer {
    height: 100% !important;
    width: 100% !important;
    min-height: 800px !important; /* 최소 높이를 800픽셀로 고정 */
}

/* 3. 내부 툴바 제거 재시도 (스샷에 찍힌 ID 기준) */
#toolbarContainer {
    display: none !important;
}/* =========================================================
   DSSC TTS UI (Scoped) - CSS 전체 완성본 (FINAL)
   컨테이너 class: dssc-tts-scope
   ========================================================= */

.dssc-tts-scope .dssc-tts{
  position: fixed !important;
  right: 22px !important;
  bottom: 22px !important;
  z-index: 2147483647 !important;
}

/* 패널 */
.dssc-tts-scope .dssc-tts-panel{
  width: 176px !important;
  border-radius: 22px !important;
  padding: 14px 14px 12px !important;

  background: linear-gradient(
    145deg,
    rgba(40, 140, 255, 0.38),
    rgba(60, 210, 255, 0.22)
  ) !important;

  border: 1px solid rgba(255,255,255,0.30) !important;

  backdrop-filter: blur(18px) saturate(170%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(170%) !important;

  box-shadow:
    0 18px 55px rgba(0,0,0,0.22),
    inset 0 0 0 1px rgba(255,255,255,0.12) !important;

  transition: transform 380ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.dssc-tts-scope .dssc-tts-panel:hover,
.dssc-tts-scope .dssc-tts-panel:focus-within{
  transform: translateY(-6px) !important;
}

.dssc-tts-scope .dssc-tts-panel.is-speaking{
  box-shadow:
    0 18px 55px rgba(0,0,0,0.22),
    inset 0 0 0 1px rgba(255,255,255,0.12),
    0 0 30px rgba(70, 170, 255, 0.28) !important;
}

/* 라벨 */
.dssc-tts-scope .dssc-tts-label{
  cursor: pointer !important;
  outline: none !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;

  padding: 12px 10px !important;
  border-radius: 14px !important;

  background: rgba(255,255,255,0.20) !important;
  border: 1px solid rgba(255,255,255,0.30) !important;

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.10),
    0 10px 22px rgba(0,0,0,0.12) !important;
}

.dssc-tts-scope .dssc-tts-label-text{
  font-size: 19px !important;
  font-weight: 900 !important;
  letter-spacing: -0.3px !important;
  line-height: 1.15 !important;

  color: rgba(255,255,255,0.98) !important;

  text-shadow:
    0 1px 0 rgba(0,0,0,0.12),
    0 12px 24px rgba(0,0,0,0.10) !important;
}

/* 찰랑 */
.dssc-tts-scope .dssc-tts-label:hover .dssc-tts-label-text,
.dssc-tts-scope .dssc-tts-label:focus .dssc-tts-label-text{
  animation: dssc-liquid-jelly 760ms cubic-bezier(0.16, 1, 0.3, 1) 1 !important;
}

@keyframes dssc-liquid-jelly{
  0%   { transform: scale(1); }
  14%  { transform: scale(1.12, 0.96); }
  34%  { transform: scale(0.96, 1.12); }
  56%  { transform: scale(1.06, 0.985); }
  74%  { transform: scale(0.99, 1.05); }
  100% { transform: scale(1); }
}

/* 버튼 2개 */
.dssc-tts-scope .dssc-tts-actions{
  margin-top: 10px !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
}

.dssc-tts-scope .dssc-tts-btn{
  width: 100% !important;
  min-width: 0 !important;
  height: 46px !important;
  border-radius: 16px !important;

  background: rgba(255,255,255,0.22) !important;
  border: 1px solid rgba(255,255,255,0.32) !important;

  backdrop-filter: blur(12px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;

  box-shadow:
    0 12px 24px rgba(0,0,0,0.14),
    inset 0 0 0 1px rgba(255,255,255,0.10) !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;

  cursor: pointer !important;
  user-select: none !important;

  transition:
    transform 220ms ease,
    filter 220ms ease,
    background 220ms ease,
    border-color 220ms ease !important;
}

.dssc-tts-scope .dssc-tts-btn:hover{
  transform: translateY(-2px) !important;
  filter: brightness(1.10) saturate(1.06) !important;
  background: rgba(255,255,255,0.26) !important;
  border-color: rgba(255,255,255,0.38) !important;
}

.dssc-tts-scope .dssc-tts-btn:active{
  transform: translateY(0px) !important;
}

.dssc-tts-scope .dssc-tts-btn-text{
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: -0.2px !important;
  color: rgba(255,255,255,0.98) !important;

  text-shadow:
    0 1px 0 rgba(0,0,0,0.12),
    0 10px 22px rgba(0,0,0,0.10) !important;
}

/* 아이콘 */
.dssc-tts-scope .dssc-tts-btn-icon{
  width: 14px !important;
  height: 14px !important;
  position: relative !important;
  display: inline-block !important;
  flex: 0 0 14px !important;
}

/* ▶ 재생 */
.dssc-tts-scope .dssc-tts-toggle .dssc-tts-btn-icon::before{
  content: "" !important;
  position: absolute !important;
  left: 3px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 0 !important;
  height: 0 !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 10px solid rgba(255,255,255,0.98) !important;
}

/* || 정지 */
.dssc-tts-scope .dssc-tts-toggle.pause .dssc-tts-btn-icon::before,
.dssc-tts-scope .dssc-tts-toggle.pause .dssc-tts-btn-icon::after{
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 4px !important;
  height: 12px !important;
  border-radius: 2px !important;
  background: rgba(255,255,255,0.98) !important;
  border: 0 !important;
}

.dssc-tts-scope .dssc-tts-toggle.pause .dssc-tts-btn-icon::before{ left: 2px !important; }
.dssc-tts-scope .dssc-tts-toggle.pause .dssc-tts-btn-icon::after { left: 8px !important; }

/* ■ 중단 */
.dssc-tts-scope .dssc-tts-btn-icon.stop::before{
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%,-50%) !important;

  width: 12px !important;
  height: 12px !important;
  border-radius: 3px !important;
  background: rgba(255,255,255,0.98) !important;
}

/* 대비 선호 */
@media (prefers-contrast: more){
  .dssc-tts-scope .dssc-tts-panel{
    border-color: rgba(255,255,255,0.45) !important;
  }
  .dssc-tts-scope .dssc-tts-label,
  .dssc-tts-scope .dssc-tts-btn{
    background: rgba(255,255,255,0.28) !important;
    border-color: rgba(255,255,255,0.44) !important;
  }
}

/* 모션 최소화 */
@media (prefers-reduced-motion: reduce){
  .dssc-tts-scope .dssc-tts-panel,
  .dssc-tts-scope .dssc-tts-label,
  .dssc-tts-scope .dssc-tts-btn,
  .dssc-tts-scope .dssc-tts-label-text{
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }
}/* --- [1] 전체 컨테이너: 리퀴드 글라스 베이스 --- */
.component-tabs.type2 {
    background: rgba(255, 255, 255, 0.2) !important;
    backdrop-filter: blur(15px) saturate(180%); /* 청량하고 선명한 투명감 */
    -webkit-backdrop-filter: blur(15px) saturate(180%);
    border-radius: 20px;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
    margin-bottom: 20px;
}

/* 탭 바 정렬: 길이를 칼같이 맞추기 위한 설정 */
.component-tabs.type2 .navbar-nav-new {
    border: none !important;
    display: flex !important;
    width: 100% !important;
    gap: 12px;
    padding: 0;
    margin-bottom: 10px;
}

/* 개별 탭 항목: 유리 조각 느낌 */
.component-tabs.type2 .navbar-nav-new .nav-item {
    flex: 1 !important; /* 좌우 길이를 동일하게 배분 */
    border: none !important;
    background: rgba(255, 255, 255, 0.3) !important;
    border-radius: 12px;
    transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
    position: relative;
    overflow: hidden;
}

/* 활성 탭: 청량한 블루 리퀴드 그라데이션 */
.component-tabs.type2 .navbar-nav-new .nav-item.active {
    background: linear-gradient(135deg, rgba(17, 100, 177, 0.9), rgba(72, 118, 239, 0.8)) !important;
    box-shadow: 0 8px 20px rgba(17, 100, 177, 0.3), inset 0 0 12px rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
}

.component-tabs.type2 .navbar-nav-new .nav-item.active .nav-link span {
    color: #ffffff !important;
    font-weight: 700;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* --- [2] 다운로드 버튼: 일체감 있는 유리 질감 --- */
.dku-button .btn {
    width: 100% !important; /* 탭과 너비 일치 */
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    backdrop-filter: blur(8px);
    font-weight: 600;
    padding: 12px 0;
    transition: 0.4s;
    background: rgba(255, 255, 255, 0.5) !important;
    color: #555 !important;
}

/* 활성화된 영역의 버튼 강조 */
.nav-item.active ~ div .dku-button .btn-type-01 {
    background: #1164B1 !important;
    color: #fff !important;
    border: none !important;
    box-shadow: 0 6px 15px rgba(17, 100, 177, 0.25);
}

/* --- [3] 리퀴드 애니메이션: '나 좀 봐줘' 효과 (강화 버전) --- */
@keyframes liquid-float {
    0% { 
        transform: translateY(0); 
        filter: brightness(1); 
    }
    50% { 
        transform: translateY(-6px); /* 부유 높이를 -3px에서 -6px로 강화 */
        filter: brightness(1.2);    /* 정점에서 더 반짝이게 변경 */
        color: #1164B1; 
    }
    100% { 
        transform: translateY(0); 
        filter: brightness(1); 
    }
}

/* 비활성 탭의 텍스트에만 리드미컬한 애니메이션 적용 */
.nav-item:not(.active) .nav-link .navbar-text-truncate {
    display: inline-block;
    /* 2.5s에서 2.1s로 살짝 당겨서 더 생동감 있게 변경 */
    animation: liquid-float 2.1s infinite ease-in-out;
}

/* 클릭 및 활성화 시 애니메이션 완전 차단 */
.nav-item.active .nav-link .navbar-text-truncate,
.nav-link:focus .navbar-text-truncate,
.nav-link:active .navbar-text-truncate {
    animation: none !important;
    transform: none !important;
}.lfr-layout-structure-item-60e80f2c-813c-a955-d13a-fb0f0736d862 {
font-size: 15px !important;
font-weight: 500 !important;
margin-bottom: var(--spacer-2,0.5rem) !important;
margin-top: var(--spacer-2,0.5rem) !important;
padding-bottom: var(--spacer-1,0.25rem) !important;
padding-top: var(--spacer-1,0.25rem) !important;
text-align: center !important;
color: var(--gray-600) !important;
}
.lfr-layout-structure-item-e8d5a3e3-6669-0d2c-9e67-5cc2cd71fcbf {
font-size: 18px !important;
}
/* 1. PDF가 들어있는 가장 바깥쪽 상자 높이 강제 확대 */
.video, .aspect-ratio, .aspect-ratio-16-to-9 {
    padding-bottom: 0 !important; /* 기존의 16:9 비율 제한 해제 */
    height: 90vh !important;    /* 화면 높이의 90%만큼 시원하게 키움 */
    max-height: none !important;
}

/* 2. PDF 뷰어 프레임 자체의 높이 조절 */
iframe, #viewerContainer {
    height: 100% !important;
    width: 100% !important;
    min-height: 800px !important; /* 최소 높이를 800픽셀로 고정 */
}

/* 3. 내부 툴바 제거 재시도 (스샷에 찍힌 ID 기준) */
#toolbarContainer {
    display: none !important;
}.lfr-layout-structure-item-544785d5-1a47-6d0b-401c-e2a41612803e {
display: none !important;
}
.lfr-layout-structure-item-7accbdb4-21a3-4828-870b-c68ebad0ca04 {
font-size: 15px !important;
font-weight: 500 !important;
margin-bottom: var(--spacer-2,0.5rem) !important;
margin-top: var(--spacer-2,0.5rem) !important;
padding-bottom: var(--spacer-1,0.25rem) !important;
padding-top: var(--spacer-1,0.25rem) !important;
text-align: center !important;
color: var(--gray-600) !important;
}
/* 'tight-tracking'이라는 이름의 클래스 생성 */
.tight-tracking {
  letter-spacing: -0.05em;
}.lfr-layout-structure-item-e2d0e565-54f0-640f-2976-21cd0a69c4be {
background-color: #FFFFFF00 !important;
}
/* [1] 버튼 본체: 투명 리퀴드 글라스 */
.liquid-target-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 48px !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, 0.15) !important;
    backdrop-filter: blur(10px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(10px) saturate(150%) !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03) !important;
    cursor: pointer;
    overflow: hidden !important;
    transition: all 0.3s ease;
    text-decoration: none !important;
}

/* [2] 내부 텍스트: 오른쪽으로 흐르는 리퀴드 그라데이션 */
.liquid-target-btn span, 
.liquid-target-btn b {
    display: inline-block !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    letter-spacing: -0.3px;
    
    /* 각도를 반대로 조정하여 흐름의 방향을 바꿈 */
    background: linear-gradient(
        -120deg, 
        #1164B1 15%, 
        #4facfe 50%, 
        #1164B1 85%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    
    /* 애니메이션 위치값을 조정하여 오른쪽으로 흐르게 변경 */
    animation: text-color-flow-right 4s linear infinite !important;
}

@keyframes text-color-flow-right {
    0% { background-position: 200% center; }
    100% { background-position: 0% center; }
}

/* 호버 효과 */
.liquid-target-btn:hover {
    background: rgba(255, 255, 255, 0.25) !important;
    border: 1px solid rgba(255, 255, 255, 0.6) !important;
}