
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown), html.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { height: 100% !important; overflow-y: visible !important; }

.split {
    display: flex;
    flex-direction: row;
    height: 100vh;
}

.gutter {
    background-color: #eee;
    background-repeat: no-repeat;
    background-position: 50%;
}

.gutter.gutter-horizontal {
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
    cursor: col-resize;
    width: 10px;
}

.panel {
    padding: 15px;
}

/* 중앙 패널 스타일 */
#list-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
    contain: layout paint size;
    overflow-y: hidden; /* 스크롤은 내부 컨테이너(#patent-list)만 담당 */
}

/* 가상 스크롤 컨테이너: 자체 스크롤만 사용 및 자동 앵커링 비활성화 */
#patent-list {
    height: 100%;
    overflow-y: auto;
    overflow-anchor: none;
}

.content-wrapper {
    flex: 1; /* 남은 공간 모두 차지 */
    overflow-y: auto; /* 내용이 넘칠 경우 스크롤 */
    margin-bottom: 15px; /* input과의 간격 */
}

body {
    margin: 0;
    padding: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Floating 버튼 스타일 */
.floating-btn {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.floating-menu {
    min-width: auto;
    padding: 8px 0;
}

.floating-menu .dropdown-item {
    padding: 8px 24px;
    white-space: nowrap;
}

.floating-btn::after {
    display: none;
}

/* 중간영역 특허 리스트 스타일 */
.list-item {
    padding: 10px;
    border: 1px solid #ccc;
    /* border-radius: 5px; */
    margin-bottom: 10px;
    cursor: pointer;
}

.list-item > h3 {
    margin-bottom: 17px;
}

/* 왼쪽 패널 스타일 */
#patent-panel {
    position: relative; /* 부모 요소에 relative 설정 */
    overflow-y: hidden;
    display: flex;
    flex-direction: column;
}

#scrap {
    flex: 1;
    overflow-y: auto;
}

.list-box {
    flex: 1;
    overflow-y: auto;
    background-color: #fff;
    /* border-top: 2px solid #ccc; */
    margin-top: 10px;
    padding: 5px;
}

.keyword-list-item {
    padding: 2px;
    margin-bottom: 5px;
    cursor: pointer;
}

/* 오른쪽 패널 스타일 추가 */
#keyword-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* 패널들의 높이 조정 */
#patent-panel, #list-panel, #keyword-panel {
    height: 100%;
    overflow-y: auto;
}

/* split 컨테이너 스타일 수정 */
#split-container {
    flex: 1;  /* 남은 공간 모두 차지 */
    display: flex;
    overflow: hidden;
}

.color-grid {
    display: grid;
    grid-template-columns: repeat(3, 24px);
    grid-template-rows: repeat(2, 24px);
    gap: 8px;
    margin: 10px 0;
}

.color-grid > div {
    border: 1px solid #ccc;
    cursor: pointer;
    transition: border-color 0.2s;
}

.color-grid > div:hover {
    border: 2px solid #000;
}

/* 색상 선택기 래퍼 */
.color-picker-wrapper {
    position: relative;
    display: inline-block;
}

/* 색상 선택기 버튼 */
.color-picker-btn {
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: white;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.color-picker-btn:hover {
    background: #f0f0f0;
}

/* 숨겨진 color input */
#swal-colorpicker {
    opacity: 0;
    position: absolute;
    width: 1px;
    height: 1px;
    background-color: #f8f9fa;
}

/* 팔레트 아이콘 */
.color-picker-btn i {
    font-size: 1.2em;
    color: #666;
}

#pdf-panel {
    position: relative;
    background-color: #fff;
    border-right: 1px solid #dee2e6;
    display: flex;
    flex-direction: column;
    overflow: hidden;  /* 내부 스크롤만 허용 */
}

#pdf-container {
    flex-grow: 1;
    overflow: auto;  /* 가로/세로 스크롤 모두 허용 */
}

#pdf-container canvas {
    max-width: none;  /* 원본 크기 유지 */
    height: auto;
}

.pdf-controls {
    z-index: 100;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.accordion-body {
    padding-left: 5px;
    padding-right: 5px;
}

.navbar {
    padding: 0.3rem 0.5rem;
}

.navbar-brand {
    padding: 0;
}

.dropdown-menu {
    min-width: 100px;
}


.patent-detail {
    padding: 20px;
    width: 100%;         /* 부모 컨테이너의 너비에 맞춤 */
    max-width: 100%;     /* 부모 컨테이너를 넘지 않도록 제한 */
    box-sizing: border-box; /* padding이 width에 포함되도록 설정 */
    overflow-x: hidden;  /* 가로 스크롤 방지 */
}

.patent-detail h1 {
    display: block;
    font-size: 2em;
    margin-block-start: 0.67em;
    margin-block-end: 0.67em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    font-weight: bold;
    unicode-bidi: isolate;
}

.patent-detail h2 {
    /* em은 부모 요소의 font-size를 기준으로 하는 상대적인 크기 단위입니다.
       1em은 부모의 font-size와 동일하며, 1.2em은 부모 크기의 1.2배입니다. */
    /* font-size: 1.2em; */
    margin-top: 40px;
}

.patent-detail dl {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 10px;
    margin: 20px 0;
}

.patent-detail dt {
    font-weight: bold;
    color: #333;
    padding: 8px;
    background-color: #f5f5f5;
    border-radius: 4px;
}

.patent-detail dd {
    margin: 0;
    padding: 8px;
    border-bottom: 1px solid #eee;
}

.patent-detail dd[repeat] {
    display: inline-block;
    margin-right: 10px;
    background: #f0f0f0;
    padding: 4px 8px;
    border-radius: 4px;
}

/* 특허 상세 정보에서 국가 코드, 국가 이름, 공개 번호를 제외한 모든 span 요소를 숨김 처리 */
.patent-detail dl span:not(.country-code)
:not(.country-name)
:not(.publication-number) {
    display: none;
}

.patent-detail meta {
    display: none;
}

.patent-detail dt + dd {
    display: block;
}

.patent-detail .claims-content .claim-item {
    margin-bottom: 1rem;
    display: flex;
    gap: 0.5rem;
}

.patent-detail .claims-content .claim-dependent {
    margin-left: 1rem;
    position: relative;
}

/* .patent-detail .claims-content .claim-item .claim-number {
    flex-shrink: 0;
    min-width: 2rem;
}

.patent-detail .claims-content .claim-item .claim-content {
    flex: 1;
} */

/* 선택사항: 종속항 시각적 표시 */
.patent-detail .claims-content .claim-item.claim-dependent::before {
    content: '';
    position: absolute;
    left: -1rem;
    top: 0.5em;
    width: 0.5rem;
    height: 1px;
    background-color: #ccc;
}

/* Description 부분 스타일 */
.patent-detail .description-content div {
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
}

/* Fix: 개별 문장 라인(div.description-line)에는 flex 해제하여 줄 전체 확장 방지 */
.patent-detail .description-content .description-line {
    display: block;
    flex-direction: initial;
}

.patent-detail .para-num {
    color: #666;
    margin-bottom: 5px;
}

.patent-detail .description-text {
    padding-left: 20px;
}

/* 문단 위에 para-num 한 줄로 표시 (프로젝트 화면) */
.patent-detail .description-content .para-num-line {
    color: #666;
    margin-top: 0.6em;
    margin-bottom: 0.2em;
}

/* heading 태그 줄바꿈 */
heading {
    display: block;
    width: 100%;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

/* ==========================
   Drawing panel (도면 뷰어)
   ========================== */
#drawing-panel {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

#drawing-panel-content {
    flex: 1;
    padding: 0; /* iframe이 꽉 차도록 내부 여백 제거 */
    overflow: hidden;
}

/* 안전 장치: iframe이 항상 패널을 가득 채우도록 */
#drawing-panel-content > #drawing-viewer {
    display: block;
    width: 100%;
    height: 100%;
    border: none;
}

