
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;
}

/* Selection translation panel */
#translation-panel,
.translation-panel-shell {
    min-width: 0;
    height: 100%;
}

.translation-panel-shell {
    display: flex;
    flex-direction: column;
    font-family: var(--kta-font-sans, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Apple SD Gothic Neo", system-ui, sans-serif);
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.translation-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
}

.translation-panel-title {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 0.95rem;
    font-weight: 700;
}

.translation-panel-controls {
    display: grid;
    gap: 8px;
    padding: 8px 10px 0;
}

.translation-panel-controls {
    grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);
    align-items: center;
    justify-content: center;
    column-gap: 10px;
}

.translation-panel-controls .form-select {
    min-width: 0;
    height: 40px;
    overflow: hidden;
    text-align: center;
    text-align-last: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#btn-translation-swap-langs {
    justify-self: center;
    align-self: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #006dcb;
    color: #fff;
    box-shadow: 0 4px 10px rgba(0, 109, 203, 0.24);
}

#btn-translation-swap-langs:hover,
#btn-translation-swap-langs:focus-visible {
    background: #005bb0;
    color: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 109, 203, 0.18);
}

.translation-panel-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 8px;
    min-height: 0;
    padding: var(--kta-panel-content-padding, 8px);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
}

#translation-panel .translation-panel-body.kta-panel-body {
    flex: 1 1 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.translation-field-label {
    position: static;
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    margin: 2px 0 -2px;
    padding: 0;
    border: 0;
    overflow: visible;
    clip: auto;
    color: var(--kta-muted, #6b7280);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
}

.translation-textarea {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    min-height: 120px;
    height: auto;
    max-height: none;
    padding: 10px 12px 12px;
    border: 1px solid var(--kta-border, #d8dee8);
    border-radius: 8px;
    background: var(--kta-surface, #fff);
    box-shadow: inset 0 1px 2px rgba(17, 24, 39, 0.03) !important;
    resize: none;
    overflow: hidden !important;
    overflow-y: hidden !important;
    scrollbar-width: none;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: inherit;
    font-size: 0.96rem;
    line-height: 1.48;
}

.translation-textarea::-webkit-scrollbar {
    display: none;
}

.translation-textarea:focus {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.55);
    background: var(--kta-surface, #fff);
    box-shadow: 0 0 0 3px rgba(var(--kta-primary-rgb, 0, 145, 234), 0.12) !important;
}

.translation-result {
    background: transparent;
}

.translation-result-wrap {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    min-height: 0;
}

.translation-result-wrap .translation-result {
    flex: 0 0 auto;
    min-height: 120px;
}

.translation-result-wrap .translation-result:focus {
    background: var(--kta-surface, #fff);
}

.translation-result-actions {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-height: 30px;
    padding: 0 2px;
}

.translation-copy-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--kta-muted, #4b5563);
    line-height: 1;
}

.translation-copy-icon:hover,
.translation-copy-icon:focus-visible {
    background: var(--kta-surface-muted, #f3f4f6);
    color: var(--kta-text, #111827);
    outline: none;
}

.translation-copy-toast {
    position: absolute;
    right: 36px;
    bottom: 0;
    z-index: 2;
    max-width: min(180px, 80%);
    padding: 7px 10px;
    border-radius: 6px;
    background: rgba(54, 54, 54, 0.94);
    color: #fff;
    font-size: 0.78rem;
    line-height: 1.2;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity 0.14s ease, transform 0.14s ease;
}

.translation-copy-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.translation-panel-footer {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 24px;
    padding: 0 10px 8px;
    border-top: 0;
    background: var(--kta-surface, #fff);
}

.translation-status-row,
.translation-usage-row,
.translation-message-row {
    min-width: 0;
    color: var(--kta-muted, #6b7280);
    font-size: 0.76rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.translation-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.translation-message-row.is-error {
    color: #b42318;
}

.translation-message-row.is-success {
    color: #047857;
}

.translation-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.translation-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.translation-floating-button {
    position: fixed;
    z-index: 1080;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 9px;
    border: 1px solid var(--kta-border, #d1d5db);
    border-radius: 8px;
    background: var(--kta-surface, #fff);
    box-shadow: var(--kta-shadow, 0 3px 14px rgba(17, 24, 39, 0.16));
    color: var(--kta-text, #111827);
    font-size: 0.78rem;
    font-weight: 700;
}

.translation-floating-button:hover {
    border-color: var(--kta-primary, #0091ea);
    color: var(--kta-primary, #0091ea);
}

@media (max-width: 520px) {
    .translation-panel-controls {
        grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);
    }

    #btn-translation-swap-langs {
        justify-self: center;
    }

    .translation-actions {
        justify-content: stretch;
    }

    .translation-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
    }
}

.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: 4px 15px 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;
    container-type: inline-size;
}

.list-box {
    flex: 1;
    overflow-y: auto;
    background-color: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    /* border-top: 2px solid #ccc; */
    margin-top: var(--kta-panel-content-padding, 8px);
    padding: var(--kta-panel-content-padding, 8px);
}

.keyword-list-item {
    padding: 2px;
    margin-bottom: 5px;
    color: var(--kta-text, #111827);
    cursor: pointer;
}

#keyword-panel .bg-light,
#keyword-list .bg-light,
.keyword-group-header.bg-light {
    background-color: var(--kta-surface-muted, #f8f9fa) !important;
    color: var(--kta-text, #111827) !important;
}

.keyword-group,
.keyword-list {
    color: var(--kta-text, #111827);
}

/* 오른쪽 패널 스타일 추가 */
#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: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    border-right: 1px solid var(--kta-border, #dee2e6);
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: hidden;  /* 내부 스크롤만 허용 */
}

#pdf-container {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 0;
    overflow: hidden;  /* PDF iframe 내부 스크롤만 사용 */
}

#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 ol.claims > li,
.patent-detail .claims-content ul.claims > li {
    list-style: none;
}

.patent-detail .claims-content .claim-item[paragraph_index]::before {
    content: attr(paragraph_index) ". ";
    font-weight: 600;
    margin-right: 0.35rem;
    flex: 0 0 auto;
}

.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;
}

.patent-detail .claims-content .claim-item.claim-dependent[paragraph_index]::before {
    content: attr(paragraph_index) ". ";
    position: static;
    width: auto;
    height: auto;
    background: transparent;
}

/* 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;
}

/* ==========================
   Chat-style project workspace refresh
   ========================== */
.app-content:has(#split-container) {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

#project-info {
    flex: 0 0 auto;
    padding: 10px 16px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
}

#project-info .container-fluid {
    padding-right: 0;
    padding-left: 0;
}

#project-info .row {
    gap: 8px;
}

#project-info h4#project-name {
    max-width: min(52vw, 820px);
    overflow: hidden;
    color: var(--kta-text, #111827);
    font-size: 1rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#project-info .text-muted.small {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 6px !important;
    color: var(--kta-muted, #6b7280) !important;
    font-size: 0.78rem;
}

#project-info .text-muted.small > span {
    color: var(--kta-muted, #6b7280);
}

#project-info #status-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 10px !important;
    border: 1px solid rgba(0, 145, 234, 0.18);
    border-radius: 999px;
    background: rgba(0, 145, 234, 0.1) !important;
    color: var(--kta-primary, #0091ea);
    font-size: 0.78rem !important;
    font-weight: 650;
}

#project-info .btn {
    min-height: 34px;
    padding: 6px 10px;
    border-radius: var(--kta-radius, 8px) !important;
    font-size: 0.86rem;
}

#project-info .btn-secondary {
    width: 34px;
    min-width: 34px;
    padding: 0;
}

.settings-menu {
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    box-shadow: 0 18px 48px rgba(17, 24, 39, 0.12) !important;
}

#split-container {
    flex: 1 1 auto;
    gap: 0;
    height: auto;
    min-height: 0;
    padding: 10px;
    background: var(--kta-surface-muted, #f7f7f8) !important;
}

.panel {
    min-width: 0;
    padding: 4px 12px 12px;
    background: var(--kta-surface, #fff);
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    box-shadow: var(--kta-shadow, 0 1px 2px rgba(17, 24, 39, 0.08));
}

.gutter.gutter-horizontal {
    width: 10px !important;
    background: transparent;
    background-image: none;
}

.gutter.gutter-horizontal:hover,
.gutter.gutter-horizontal:active,
.gutter.gutter-vertical:hover,
.gutter.gutter-vertical:active {
    background: rgba(13, 110, 253, 0.08);
}

.gutter.gutter-horizontal::after {
    display: block;
    width: 2px;
    height: calc(100% - 24px);
    margin: 12px auto;
    border-radius: 999px;
    background: var(--kta-border, #e5e7eb);
    content: "";
}

.gutter.gutter-horizontal:hover::after,
.gutter.gutter-horizontal:active::after,
.gutter.gutter-vertical:hover::after,
.gutter.gutter-vertical:active::after {
    background: var(--kta-primary, #0d6efd);
    box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.14);
}

.gutter.gutter-vertical {
    height: 10px !important;
    background: transparent;
    background-image: none;
    cursor: row-resize;
}

.gutter.gutter-vertical::after {
    display: block;
    width: calc(100% - 24px);
    height: 2px;
    margin: 4px 12px;
    border-radius: 999px;
    background: var(--kta-border, #e5e7eb);
    content: "";
}

#split-container.is-dock-layout {
    flex-direction: column;
}

#split-container.is-dockview-layout {
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.project-dockview-root {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: var(--kta-surface, #fff);
    position: relative;
}

:root {
    --kta-panel-fixed-bar-top-gap: 0px;
    --kta-tab-rear-bg: #e5e7eb;
    --kta-tab-rear-text: #4b5563;
    --kta-tab-rear-border: #d1d5db;
}

html[data-app-theme="dark"] {
    --kta-tab-rear-bg: #0b1220;
    --kta-tab-rear-text: #94a3b8;
    --kta-tab-rear-border: #263244;
}

.project-dockview-root.dockview-theme-light {
    --kta-tab-rear-bg: #e5e7eb;
    --kta-tab-rear-text: #4b5563;
    --kta-tab-rear-border: #d1d5db;
    --dv-active-sash-color: var(--kta-primary, #0d6efd);
    --dv-activegroup-visiblepanel-tab-background-color: var(--kta-primary, #0d6efd);
    --dv-activegroup-visiblepanel-tab-color: #fff;
    --dv-activegroup-hiddenpanel-tab-background-color: var(--kta-tab-rear-bg);
    --dv-activegroup-hiddenpanel-tab-color: var(--kta-tab-rear-text);
    --dv-inactivegroup-visiblepanel-tab-background-color: var(--kta-surface, #fff);
    --dv-inactivegroup-visiblepanel-tab-color: var(--kta-text, #111827);
    --dv-inactivegroup-hiddenpanel-tab-background-color: var(--kta-tab-rear-bg);
    --dv-inactivegroup-hiddenpanel-tab-color: var(--kta-tab-rear-text);
    --dv-icon-hover-background-color: rgba(255, 255, 255, 0.18);
}

.project-dockview-root.dockview-theme-dark {
    --kta-tab-rear-bg: #0b1220;
    --kta-tab-rear-text: #94a3b8;
    --kta-tab-rear-border: #263244;
    --dv-active-sash-color: var(--kta-primary, #60a5fa);
    --dv-group-view-background-color: var(--kta-surface, #111827);
    --dv-tabs-and-actions-container-background-color: var(--kta-surface-muted, #1f2937);
    --dv-activegroup-visiblepanel-tab-background-color: var(--kta-primary, #60a5fa);
    --dv-activegroup-visiblepanel-tab-color: #0f1724;
    --dv-activegroup-hiddenpanel-tab-background-color: var(--kta-tab-rear-bg);
    --dv-activegroup-hiddenpanel-tab-color: var(--kta-tab-rear-text);
    --dv-inactivegroup-visiblepanel-tab-background-color: var(--kta-surface, #111827);
    --dv-inactivegroup-visiblepanel-tab-color: var(--kta-muted, #cbd5e1);
    --dv-inactivegroup-hiddenpanel-tab-background-color: var(--kta-tab-rear-bg);
    --dv-inactivegroup-hiddenpanel-tab-color: var(--kta-tab-rear-text);
    --dv-tab-divider-color: var(--kta-border, #263244);
    --dv-separator-border: var(--kta-border, #263244);
    --dv-paneview-header-border-color: var(--kta-border, #263244);
    --dv-icon-hover-background-color: rgba(255, 255, 255, 0.08);
}

.rnc-dockview-empty-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    color: var(--kta-muted, #64748b);
    font-size: 0.96rem;
    line-height: 1.6;
    text-align: center;
    pointer-events: none;
}

.rnc-dockview-empty-overlay[hidden] {
    display: none !important;
}

.initial-layout-template-popup {
    border-radius: 8px;
}

.initial-layout-template-container {
    margin-top: 8px;
}

.initial-layout-template-intro {
    margin: 0 auto 18px;
    max-width: 620px;
    color: var(--kta-muted, #526070);
    font-size: 0.94rem;
    line-height: 1.55;
    text-align: center;
}

.initial-layout-template-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.initial-layout-template-card {
    display: grid;
    grid-template-rows: auto auto minmax(48px, auto) auto;
    gap: 8px;
    min-height: 210px;
    padding: 18px 16px;
    border: 1px solid var(--kta-border, #d8dee8);
    border-radius: 8px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #1f2937);
    text-align: left;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.initial-layout-template-card:hover,
.initial-layout-template-card:focus-visible {
    border-color: #87a7d8;
    box-shadow: 0 10px 28px rgba(32, 58, 95, 0.12);
    outline: none;
    transform: translateY(-1px);
}

.initial-layout-template-card.is-selected {
    border-color: #0d6efd;
    box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.14);
}

.initial-layout-template-icon {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #eef5ff;
    color: #0d6efd;
    font-size: 1.12rem;
}

.initial-layout-template-card-title {
    display: block;
    color: var(--kta-text, #111827);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}

.initial-layout-template-card-summary,
.initial-layout-template-card-panels {
    display: block;
    font-size: 0.87rem;
    line-height: 1.5;
}

.initial-layout-template-card-summary {
    color: var(--kta-muted, #526070);
}

.initial-layout-template-card-panels {
    align-self: end;
    color: var(--kta-text, #334155);
    font-weight: 600;
}

@media (max-width: 820px) {
    .initial-layout-template-grid {
        grid-template-columns: 1fr;
    }

    .initial-layout-template-card {
        min-height: 0;
    }
}

.project-dockview-parking {
    display: none !important;
}

#split-container.is-dockview-layout > .panel {
    display: none !important;
}

.rnc-dockview-panel-content {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.rnc-dockview-panel-content > .panel {
    width: 100% !important;
    height: 100% !important;
    min-width: 0;
    min-height: 0;
    margin: 0;
    box-sizing: border-box;
}

.is-dockview-layout .dv-tabs-and-actions-container {
    margin-top: var(--kta-panel-fixed-bar-top-gap, 0px);
    min-height: 34px;
}

.is-dockview-layout .dv-tab {
    font-size: 0.84rem;
}

.is-dockview-layout .dv-tab.dv-active-tab {
    background: var(--kta-surface, #fff) !important;
    color: var(--kta-text, #111827) !important;
}

.is-dockview-layout .dv-tab.dv-inactive-tab {
    background: var(--kta-tab-rear-bg, #e5e7eb) !important;
    color: var(--kta-tab-rear-text, #4b5563) !important;
    border-color: var(--kta-tab-rear-border, #d1d5db) !important;
}

.is-dockview-layout .dv-groupview.dv-active-group .dv-tab.dv-active-tab {
    background: var(--kta-primary, #0d6efd) !important;
    color: #fff !important;
}

.is-dockview-layout .dv-groupview.dv-active-group .dv-tab.dv-active-tab:hover {
    background: var(--kta-primary-dark, #0b5ed7) !important;
}

.is-dockview-layout .dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action,
.is-dockview-layout .dv-tab.dv-inactive-tab .rnc-dockview-tab-action,
.is-dockview-layout .dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action,
.is-dockview-layout .dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action,
.is-dockview-layout .dv-tab.dv-active-tab .rnc-dockview-tab-action {
    visibility: hidden !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    pointer-events: none;
}

.is-dockview-layout .dv-groupview.dv-active-group .dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action,
.is-dockview-layout .dv-groupview.dv-active-group .dv-tab.dv-active-tab .rnc-dockview-tab-action {
    visibility: visible !important;
    width: 20px !important;
    min-width: 20px !important;
    padding: 0 !important;
    pointer-events: auto;
}

.is-dockview-layout .rnc-dockview-tab {
    gap: 6px;
    min-width: 0;
    padding: 0 8px;
}

.is-dockview-layout .rnc-dockview-tab > i {
    flex: 0 0 auto;
    font-size: 0.9rem;
}

.is-dockview-layout .rnc-dockview-tab-content {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.is-dockview-layout .rnc-dockview-tab-action {
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
}

.is-dockview-layout .rnc-dockview-tab-action:hover {
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.14);
}

.project-dockview-root .dv-sash:not(.disabled):hover,
.project-dockview-root .dv-sash:not(.disabled):active {
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.16) !important;
}

.project-dockview-root .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled)::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 3px;
    height: 44px;
    border-radius: 999px;
    background: transparent;
    transform: translate(-50%, -50%);
}

.project-dockview-root .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled)::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 44px;
    height: 3px;
    border-radius: 999px;
    background: transparent;
    transform: translate(-50%, -50%);
}

.project-dockview-root .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):hover::after,
.project-dockview-root .dv-horizontal > .dv-sash-container > .dv-sash:not(.disabled):active::after,
.project-dockview-root .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled):hover::after,
.project-dockview-root .dv-vertical > .dv-sash-container > .dv-sash:not(.disabled):active::after {
    background: var(--kta-primary, #0d6efd);
    box-shadow: 0 0 0 3px rgba(var(--kta-primary-rgb, 13, 110, 253), 0.14);
}

.dock-root {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: auto;
}

.dock-hidden-panels {
    display: none !important;
}

.dock-split {
    display: flex;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.dock-split-horizontal {
    flex-direction: row;
}

.dock-split-vertical {
    flex-direction: column;
}

.dock-node {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.dock-leaf {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
    box-shadow: var(--kta-shadow, 0 1px 2px rgba(17, 24, 39, 0.08));
}

.dock-tabs {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    margin-top: var(--kta-panel-fixed-bar-top-gap, 0px);
    min-height: 34px;
    max-height: 34px;
    overflow-x: auto;
    overflow-y: hidden;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
    background: var(--kta-surface-muted, #f7f7f8);
    scrollbar-width: thin;
}

.dock-tab-insert-cursor {
    position: absolute;
    top: 6px;
    bottom: 6px;
    z-index: 35;
    width: 2px;
    border-radius: 999px;
    background: var(--kta-primary, #0091ea);
    box-shadow: 0 0 0 3px rgba(var(--kta-primary-rgb, 0, 145, 234), 0.16);
    opacity: 0;
    pointer-events: none;
    transform: translateX(-1px) scaleY(0.86);
    transition: left 0.08s ease, opacity 0.14s ease, transform 0.14s ease;
}

.dock-tabs.is-inserting .dock-tab-insert-cursor {
    opacity: 1;
    transform: translateX(-1px) scaleY(1);
}

.dock-tab {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    max-width: 240px;
    min-height: 34px;
    padding: 0 11px;
    border: 0;
    border-right: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 0;
    background: transparent;
    color: var(--kta-muted, #6b7280);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1;
    cursor: grab;
    touch-action: none;
}

.dock-tab span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dock-tab > i {
    flex: 0 0 auto;
    font-size: 0.9rem;
}

.dock-tab:hover {
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.08);
    color: var(--kta-text, #111827);
}

.dock-tab:not(.active) {
    background: var(--kta-tab-rear-bg, #e5e7eb);
    color: var(--kta-tab-rear-text, #4b5563);
    border-right-color: var(--kta-tab-rear-border, #d1d5db);
}

.dock-tab.active {
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    box-shadow: none;
}

.dock-tab.is-global-active {
    background: var(--kta-primary, #0d6efd);
    color: #fff;
    box-shadow: none;
}

.dock-tab.is-global-active:hover {
    background: var(--kta-primary-dark, #0b5ed7);
    color: #fff;
}

.dock-tab:active {
    cursor: grabbing;
}

.dock-tab.is-dragging,
body.is-docking-panel .dock-tab {
    cursor: grabbing;
}

.dock-tab.is-dragging {
    opacity: 0.35;
}

body.is-docking-panel {
    user-select: none;
}

/* ── Dock tab action buttons (close / return) ─────────────────────────────── */
.dock-tab-close,
.dock-tab-return {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    flex-shrink: 0;
    max-width: 0;
    overflow: hidden;
    padding: 2px 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    font-size: 0.78rem;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transition: max-width 0.2s ease, padding 0.2s ease, opacity 0.15s ease, background 0.12s ease;
}

.dock-tab-close {
    width: 18px;
    height: 18px;
    padding: 0;
    border-radius: 3px;
    font-size: 0.72rem;
}

.dock-tab.is-global-active .dock-tab-close,
.dock-tab.is-global-active:hover .dock-tab-close {
    max-width: 18px;
    padding: 0;
    opacity: 1;
    pointer-events: auto;
}

.dock-tab:hover .dock-tab-return {
    max-width: 90px;
    padding: 2px 6px;
    opacity: 1;
    pointer-events: auto;
}

.dock-tab-close:hover {
    background: rgba(239, 68, 68, 0.12);
    color: #ef4444;
}

.dock-tab.is-global-active .dock-tab-close:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.dock-tab-return:hover {
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.12);
    color: var(--kta-primary, #0091ea);
}

.dock-tab-return span {
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

/* ── Cross-window drop target indicator ──────────────────────────────────────── */
#dock-root.is-drop-target {
    outline: 2px dashed var(--kta-primary, #0091ea);
    outline-offset: -2px;
    border-radius: 6px;
}

#dock-root.is-drop-target::before {
    position: fixed;
    inset: 10px;
    z-index: 2147483000;
    display: block;
    border: 2px dashed var(--kta-primary, #0091ea);
    border-radius: 8px;
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.08);
    box-shadow: inset 0 0 0 9999px rgba(var(--kta-primary-rgb, 0, 145, 234), 0.025);
    pointer-events: none;
    content: "";
    animation: dock-drop-overlay-pulse 1s ease-in-out infinite;
}

@keyframes dock-drop-overlay-pulse {
    0%, 100% {
        border-color: var(--kta-primary, #0091ea);
        background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.1);
    }
    50% {
        border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.18);
        background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.035);
    }
}

/* ── Drag ghost ─────────────────────────────────────────────────────────────── */
.dock-drag-ghost {
    position: fixed;
    z-index: 9999;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 11px;
    min-height: 34px;
    border-radius: 6px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    font-size: 0.82rem;
    font-weight: 600;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18), 0 1px 4px rgba(0, 0, 0, 0.1);
    pointer-events: none;
    transform: rotate(-2deg) scale(1.04);
    opacity: 0.92;
    white-space: nowrap;
    user-select: none;
}

/* ── Popup mode: hide chrome, fill screen ─────────────────────────────────── */
body.is-popup-mode .app-shell {
    display: block;
}

body.is-popup-mode .app-sidebar,
body.is-popup-mode .app-topbar,
body.is-popup-mode .app-login-dock {
    display: none !important;
}

body.is-popup-mode .app-main,
body.is-popup-mode .app-content {
    width: 100%;
    height: 100vh;
    min-height: 100vh;
}

.dock-leaf-body {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.dock-leaf-body > .panel {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.dock-panel-inactive {
    display: none !important;
}

.dock-leaf::after {
    position: absolute;
    z-index: 30;
    display: block;
    opacity: 0;
    border: 2px solid var(--kta-primary, #0091ea);
    border-radius: 6px;
    background: rgba(0, 145, 234, 0.12);
    pointer-events: none;
    transform: scale(0.985);
    transition: opacity 0.14s ease, transform 0.14s ease;
    content: "";
}

.dock-drop-left::after {
    opacity: 1;
    inset: 6px auto 6px 6px;
    width: 28%;
    transform: scale(1);
}

.dock-drop-right::after {
    opacity: 1;
    inset: 6px 6px 6px auto;
    width: 28%;
    transform: scale(1);
}

.dock-drop-top::after {
    opacity: 1;
    inset: 6px 6px auto 6px;
    height: 28%;
    transform: scale(1);
}

.dock-drop-bottom::after {
    opacity: 1;
    inset: auto 6px 6px 6px;
    height: 28%;
    transform: scale(1);
}

.dock-drop-center::after {
    opacity: 1;
    inset: 12px;
    transform: scale(1);
}

#split-container.is-dock-layout .keyword-popup-panel {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    z-index: auto;
    width: 100% !important;
    height: 100% !important;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transform: none;
}

#keyword-panel.keyword-popup-panel {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    z-index: auto !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
}

#split-container.is-dock-layout .keyword-popup-panel::before {
    display: none;
}

#keyword-panel.keyword-popup-panel::before {
    display: none !important;
}

#split-container.is-dock-layout .keyword-popup-panel > .project-keyword-panel-actions,
#split-container.is-dock-layout .keyword-popup-panel > .project-keyword-panel-host {
    padding: var(--kta-panel-content-padding, 8px);
}

.project-keyword-panel-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
}

#keyword-list.project-keyword-panel-host {
    flex: 1;
    min-height: 0;
    overflow: auto;
    border: 0;
    border-radius: 0;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
}

.project-keyword-panel-layout {
    display: grid;
    min-height: 100%;
    grid-template-rows: auto minmax(0, 1fr);
    gap: var(--panel-auto-hide-layout-gap, 10px);
}

.project-keyword-panel-layout .create-keyword-management {
    display: grid;
    min-height: 0;
    grid-template-columns: minmax(180px, 0.32fr) minmax(360px, 1fr);
    gap: 10px;
}

.project-keyword-panel-layout .create-keyword-sidebar,
.project-keyword-panel-layout .create-keyword-main {
    min-height: 0;
}

.project-keyword-group-list {
    max-height: none;
}

.project-keyword-panel-layout .accordion {
    display: grid;
    gap: 8px;
}

.keyword-inline-layout {
    grid-template-rows: auto auto auto minmax(0, 1fr);
    align-content: start;
}

.panel-auto-hide-layout.is-auto-hide-bar-hidden {
    --panel-auto-hide-layout-gap: 0px;
}

.keyword-highlight-render-status {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    width: max-content;
    max-width: 100%;
    padding: 3px 8px;
    border: 1px solid color-mix(in srgb, var(--kta-warning, #d97706) 42%, var(--kta-border, #e5e7eb));
    border-radius: 999px;
    background: var(--kta-warning-bg, #fff7ed);
    color: var(--kta-warning, #d97706);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.keyword-highlight-render-status.is-error {
    border-color: color-mix(in srgb, var(--kta-danger, #dc2626) 38%, var(--kta-border, #e5e7eb));
    background: var(--kta-error-bg, #fff5f5);
    color: var(--kta-danger, #dc2626);
}

mark.highlight-item {
    display: inline !important;
    margin: 0 !important;
    padding: 0 0.08em !important;
    border-radius: 3px;
    color: inherit;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

mark.highlight-overlap {
    text-decoration-thickness: 2px;
    text-underline-offset: 2px;
}

mark.derwent-highlight {
    box-shadow: inset 0 -2px 0 rgba(37, 99, 235, 0.38);
}

mark.highlight-current {
    outline: 2px solid rgba(220, 38, 38, 0.85);
    outline-offset: 1px;
}

.keyword-inline-quick-add {
    --panel-auto-hide-max-height: 220px;
    position: sticky;
    top: 0;
    z-index: 5;
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 8px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.06);
}

.keyword-inline-quick-add.panel-auto-hide-bar {
    margin-top: 0;
}

.keyword-inline-top-bar.is-auto-hidden {
    gap: 0;
    border-color: transparent !important;
    box-shadow: none;
}

.keyword-inline-quick-header,
.keyword-inline-detail-header,
.keyword-inline-title-row,
.keyword-inline-actions,
.keyword-inline-select-all,
.keyword-inline-nav,
.keyword-inline-colors {
    display: flex;
    align-items: center;
}

.keyword-inline-quick-header {
    justify-content: space-between;
    gap: 8px;
}

.keyword-inline-quick-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}

.keyword-inline-add-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: stretch;
}

.keyword-inline-quick-add .keyword-inline-group-card {
    display: none;
}

.keyword-bulk-grid {
    display: grid;
    grid-template-columns: minmax(0, 220px);
    gap: 8px;
    align-items: end;
}

.keyword-bulk-field {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.keyword-bulk-field label {
    margin: 0;
    color: var(--kta-muted, #6b7280);
    font-size: 0.76rem;
    font-weight: 700;
}

.keyword-inline-field-card {
    display: grid;
    align-content: start;
    gap: 6px;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.keyword-inline-field-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    margin: 0;
    color: var(--kta-muted, #6b7280);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: help;
}

.keyword-inline-field-title:focus-visible {
    outline: 2px solid rgba(0, 145, 234, 0.35);
    outline-offset: 2px;
    border-radius: 4px;
}

.keyword-inline-field-title .bi {
    color: var(--kta-primary, #0091ea);
}

.keyword-inline-field-help {
    display: none;
    color: var(--kta-muted, #6b7280);
    font-size: 0.72rem;
    line-height: 1.35;
}

.derwent-query-form {
    padding-top: 10px;
}

.derwent-query-preview {
    display: grid;
    gap: 8px;
    max-height: 210px;
    margin-top: 10px;
    padding: 9px;
    overflow: auto;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 8px;
    background: var(--kta-surface-muted, #f8fafc);
}

.derwent-preview-section {
    display: grid;
    gap: 5px;
}

.derwent-preview-title {
    color: var(--kta-muted, #64748b);
    font-size: 0.74rem;
    font-weight: 800;
}

.derwent-preview-row {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    min-width: 0;
}

.derwent-preview-chip,
.keyword-palette-chip-label {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 2px 7px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 999px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    font-size: 0.74rem;
    line-height: 1.3;
}

.derwent-preview-warnings {
    margin: 0;
    padding-left: 18px;
    color: var(--kta-warning, #b45309);
    font-size: 0.74rem;
}

.keyword-inline-group-dropdown {
    min-width: 0;
}

.keyword-inline-group-menu-button {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 32px;
    border-color: var(--kta-border, #e5e7eb);
    background: var(--kta-input-bg, #fff);
    color: var(--kta-text, #111827);
    text-align: left;
}

.keyword-inline-group-menu-button > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.keyword-inline-group-menu-button.is-muted-target {
    color: var(--kta-muted, #6b7280);
    background: var(--kta-surface-muted, #f9fafb);
}

.keyword-inline-group-menu {
    width: min(320px, calc(100vw - 32px));
    max-width: 100%;
    padding: 8px;
    border-color: var(--kta-border, #e5e7eb);
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
}

.keyword-inline-dropdown-label {
    display: block;
    margin-bottom: 5px;
    color: var(--kta-muted, #6b7280);
    font-size: 0.74rem;
    font-weight: 700;
}

.keyword-inline-dropdown-divider {
    height: 1px;
    margin: 8px 0 5px;
    background: var(--kta-border, #e5e7eb);
}

.keyword-inline-group-option-list {
    display: grid;
    gap: 2px;
    max-height: 190px;
    overflow: auto;
}

.keyword-inline-group-option {
    border-radius: 6px;
    color: var(--kta-text, #111827);
    font-size: 0.82rem;
}

.keyword-inline-group-option:hover,
.keyword-inline-group-option:focus {
    background: var(--kta-surface-hover, #f1f5f9);
    color: var(--kta-text, #111827);
}

.keyword-inline-group-option.active,
.keyword-inline-group-option:active {
    background: var(--kta-primary, #2563ff);
    color: #fff;
}

.keyword-inline-group-control-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 32px;
    gap: 6px;
    align-items: start;
}

.keyword-inline-group-combo {
    position: relative;
    min-width: 0;
}

.keyword-inline-group-input {
    min-height: 32px;
}

.keyword-inline-group-menu[hidden] {
    display: none !important;
}

.keyword-inline-group-combo .keyword-inline-group-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 20;
    box-shadow: 0 10px 24px rgba(17, 24, 39, 0.16);
}

.keyword-inline-palette-dropdown {
    min-width: 0;
}

.keyword-inline-palette-menu {
    width: max-content;
    min-width: 0;
    max-width: calc(100vw - 32px);
    padding: 8px;
}

.keyword-inline-palette-option {
    display: grid;
    grid-template-columns: 22px minmax(58px, 72px) max-content;
    gap: 8px;
    align-items: center;
    min-height: 30px;
    border-radius: 6px;
    color: var(--kta-text, #111827);
    font-size: 0.82rem;
}

.keyword-inline-palette-option.active,
.keyword-inline-palette-option:active {
    background: var(--kta-surface-active, #eaf2ff);
    color: var(--kta-text, #111827);
}

.keyword-inline-palette-option:hover,
.keyword-inline-palette-option:focus {
    background: var(--kta-surface-hover, #f1f5f9);
    color: var(--kta-text, #111827);
}

.keyword-inline-palette-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: transparent;
    font-size: 0.78rem;
}

.keyword-inline-palette-option.active .keyword-inline-palette-check {
    color: var(--kta-primary, #2563eb);
}

.keyword-inline-palette-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.keyword-palette-preview-inline,
.keyword-group-color-palette {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

.keyword-palette-preview-inline {
    flex-wrap: nowrap;
    min-width: 0;
    width: max-content;
}

.keyword-infinite-palette-bar {
    display: flex;
    width: 190px;
    max-width: 100%;
    height: 24px;
    min-width: 190px;
    overflow: hidden;
    border: 1px solid rgba(17, 24, 39, 0.2);
    border-radius: 7px;
    background: var(--kta-surface-muted, #f8fafc);
}

.keyword-infinite-palette-step {
    display: block;
    flex: 1 1 0;
    min-width: 3px;
    height: 100%;
}

.keyword-palette-preview-inline .keyword-infinite-palette-bar {
    width: 178px;
    min-width: 178px;
    height: 22px;
    flex: 0 0 auto;
}

.keyword-palette-chip,
.keyword-group-color-swatch {
    display: inline-flex;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    padding: 0;
    border: 1px solid rgba(17, 24, 39, 0.18);
    border-radius: 50%;
}

.keyword-palette-chip {
    border-radius: 6px;
}

.keyword-palette-chip-removable {
    position: relative;
    align-items: center;
    justify-content: center;
    color: transparent;
    cursor: pointer;
    overflow: hidden;
}

.keyword-palette-chip-removable .bi {
    color: var(--keyword-custom-remove-color, #111827);
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1;
    opacity: 0;
}

.keyword-palette-chip-removable:hover .bi {
    opacity: 1;
}

.keyword-palette-preview-inline .keyword-palette-chip {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
}

.keyword-palette-chip.is-empty {
    border-style: dashed;
    background: var(--kta-surface-muted, #f8fafc);
}

.keyword-group-color-swatch {
    cursor: pointer;
}

.keyword-palette-chip.active,
.keyword-group-color-swatch.active {
    outline: 2px solid var(--kta-primary, #2563eb);
    outline-offset: 2px;
}

.keyword-inline-custom-palette-add {
    display: grid;
    grid-template-columns: 34px 150px auto;
    align-items: center;
    gap: 6px;
}

.keyword-inline-custom-palette-add .form-control-color {
    width: 34px;
    height: 30px;
    padding: 2px;
}

.keyword-inline-custom-code {
    min-width: 0;
    height: 30px;
    font-family: var(--bs-font-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    text-transform: lowercase;
}

.keyword-inline-keywords-textarea {
    min-height: 34px;
    max-height: 180px;
    resize: vertical;
    overflow: auto;
}

#keyword-panel .form-control,
#keyword-panel .form-select,
.keyword-inline-group-menu .form-control,
.keyword-inline-group-menu .form-select {
    border-color: var(--kta-border, #e5e7eb);
    background-color: var(--kta-input-bg, #fff);
    color: var(--kta-text, #111827);
}

#keyword-panel .form-control::placeholder,
.keyword-inline-group-menu .form-control::placeholder {
    color: var(--kta-input-placeholder, #94a3b8);
}

#keyword-panel .form-control:focus,
#keyword-panel .form-select:focus,
.keyword-inline-group-menu .form-control:focus,
.keyword-inline-group-menu .form-select:focus {
    border-color: var(--kta-primary, #2563ff);
    background-color: var(--kta-input-bg, #fff);
    color: var(--kta-text, #111827);
    box-shadow: var(--kta-focus-ring, 0 0 0 3px rgba(37, 99, 255, 0.14));
}

#keyword-panel .btn-light,
.keyword-inline-group-menu .btn-light {
    border-color: var(--kta-border, #e5e7eb);
    background: var(--kta-input-bg, #fff);
    color: var(--kta-text, #111827);
}

#keyword-panel .btn-light:hover,
#keyword-panel .btn-light:focus,
.keyword-inline-group-menu .btn-light:hover,
.keyword-inline-group-menu .btn-light:focus {
    border-color: var(--kta-border-strong, #d1d5db);
    background: var(--kta-surface-hover, #f1f5f9);
    color: var(--kta-text, #111827);
}

.keyword-inline-management {
    min-height: 0;
}

.keyword-selection-toolbar {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 6px 8px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 8px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.08);
}

.keyword-selection-toolbar[hidden] {
    display: none !important;
}

.keyword-selection-count {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--kta-surface-muted, #f7f7f8);
    color: var(--kta-text, #111827);
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
}

.keyword-selection-actions {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    margin-left: auto;
}

.keyword-selection-action,
.keyword-selection-clear {
    width: 30px;
    height: 30px;
    padding: 0;
}

.keyword-selection-action[hidden] {
    display: none !important;
}

.keyword-selection-target-group {
    flex: 0 1 190px;
    min-width: 140px;
    max-width: 230px;
}

.keyword-group-section-list {
    display: grid;
    align-content: start;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 315px));
    justify-content: start;
    align-items: start;
    gap: 8px;
    min-height: 0;
    overflow: auto;
    padding-bottom: 6px;
}

.keyword-group-section {
    display: grid;
    gap: 7px;
    align-content: start;
    width: 100%;
    max-width: 315px;
    padding: 9px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 8px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
}

.keyword-group-section-header,
.keyword-group-title-row {
    display: flex;
    align-items: center;
    min-width: 0;
}

.keyword-group-section-header {
    justify-content: space-between;
    gap: 8px;
}

.keyword-group-title-row {
    flex: 1 1 auto;
    gap: 6px;
}

.keyword-group-default-color-picker {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    padding: 1px;
    border: 1px solid var(--kta-border, #cbd5e1);
    border-radius: 6px;
    background: var(--kta-input-bg, #fff);
    cursor: pointer;
}

.keyword-inline-group-name-label {
    min-width: 0;
    flex: 1 1 auto;
    padding: 2px 3px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--kta-text, #111827);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.keyword-inline-group-name-label:hover,
.keyword-inline-group-name-label:focus-visible {
    background: var(--kta-surface-hover, #f1f5f9);
    outline: none;
}

.keyword-group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--kta-surface-muted, #f3f4f6);
    color: var(--kta-muted, #4b5563);
    font-size: 0.74rem;
    font-weight: 700;
}

.keyword-group-hover-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-1px);
    transition: opacity 0.14s ease, transform 0.14s ease;
}

.keyword-group-section:hover .keyword-group-hover-actions,
.keyword-group-section:focus-within .keyword-group-hover-actions {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.keyword-group-action {
    width: 28px;
    height: 28px;
    padding: 0;
}

.keyword-group-menu {
    width: min(280px, calc(100vw - 32px));
    padding: 8px;
}

.keyword-group-menu-label {
    color: var(--kta-muted, #6b7280);
    font-size: 0.74rem;
    font-weight: 700;
}

.keyword-group-color-palette {
    padding: 5px 12px 4px;
}

.keyword-type-section {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.keyword-type-section + .keyword-type-section {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--kta-border, #e5e7eb);
}

.keyword-type-section-header {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 24px;
    color: var(--kta-muted, #64748b);
}

.keyword-type-section-title {
    font-size: 0.74rem;
    font-weight: 800;
}

.keyword-type-section-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--kta-surface-muted, #f1f5f9);
    color: var(--kta-muted, #475569);
    font-size: 0.68rem;
    font-weight: 800;
}

.keyword-type-add-derwent {
    width: 24px;
    height: 24px;
    margin-left: auto;
    padding: 0;
}

.keyword-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.keyword-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    min-height: 30px;
    padding: 3px 5px 3px 8px;
    border: 1px solid var(--kta-border, #cbd5e1);
    border-radius: 999px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    font-size: 0.82rem;
    line-height: 1.2;
    cursor: pointer;
    user-select: none;
}

.keyword-chip:focus-visible {
    outline: 2px solid var(--kta-primary, #2563eb);
    outline-offset: 2px;
}

.keyword-chip.is-selected {
    border-color: var(--kta-primary, #2563eb);
    background: var(--kta-surface-active, #eff6ff);
    box-shadow: 0 0 0 2px rgba(var(--kta-primary-rgb, 37, 99, 235), 0.16);
}

#keyword-list.is-keyword-selection-mode .keyword-chip:not(.is-selected) {
    opacity: 0.82;
}

.keyword-chip.is-dragging {
    opacity: 0.42;
    cursor: grabbing;
}

.keyword-chip.is-drop-target,
.keyword-group-section.is-drop-target {
    outline: 2px solid var(--kta-primary, #0091ea);
    outline-offset: 2px;
}

.keyword-chip-drag-placeholder {
    display: inline-flex;
    width: 42px;
    min-height: 30px;
    border: 1px dashed var(--kta-primary, #0091ea);
    border-radius: 999px;
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.08);
}

.keyword-chip.is-disabled {
    cursor: default;
    opacity: 0.68;
}

.keyword-chip-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.keyword-chip-type-badge {
    flex: 0 0 auto;
    padding: 1px 5px;
    border: 1px solid color-mix(in srgb, var(--kta-muted, #64748b) 32%, var(--kta-border, #cbd5e1));
    border-radius: 999px;
    background: color-mix(in srgb, var(--kta-muted, #64748b) 12%, var(--kta-surface, #fff));
    color: var(--kta-muted, #475569);
    font-size: 0.66rem;
    font-weight: 800;
    line-height: 1.25;
}

.keyword-chip.is-editing {
    cursor: text;
    user-select: text;
}

.keyword-chip-edit-input {
    width: auto;
    min-width: 72px;
    max-width: min(180px, 100%);
    height: 24px;
    min-height: 24px;
    padding: 2px 8px;
    border: 1px solid var(--kta-border-strong, #94a3b8);
    border-radius: 999px;
    background: var(--kta-input-bg, #fff);
    color: var(--kta-text, #111827);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    outline: none;
}

.keyword-chip-edit-input:focus {
    border-color: var(--kta-primary, #2563eb);
    box-shadow: var(--kta-focus-ring, 0 0 0 2px rgba(37, 99, 235, 0.14));
}

.keyword-chip-edit-input.is-invalid {
    border-color: #dc2626;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.12);
}

.keyword-chip-delete {
    display: none;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(220, 38, 38, 0.2);
    border-radius: 50%;
    background: var(--kta-surface, rgba(255, 255, 255, 0.72));
    color: var(--kta-danger, #dc2626);
    font-size: 0.68rem;
    line-height: 1;
    cursor: pointer;
}

.keyword-chip-delete:hover,
.keyword-chip-delete:focus-visible {
    border-color: rgba(220, 38, 38, 0.42);
    background: rgba(220, 38, 38, 0.1);
    color: var(--kta-danger, #b91c1c);
}

.keyword-chip-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    align-self: center;
    padding: 0;
    border: 1px dashed var(--kta-border-strong, #cbd5e1);
    border-radius: 50%;
    background: var(--kta-surface, #fff);
    color: var(--kta-muted, #64748b);
    font-size: 0.72rem;
    cursor: pointer;
}

.keyword-chip-add:hover,
.keyword-chip-add:focus-visible {
    border-color: var(--kta-primary, #2563eb);
    color: var(--kta-primary, #2563eb);
    background: var(--kta-surface-active, #eff6ff);
}

.keyword-chip-add-editor {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    min-height: 28px;
    padding: 2px 4px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 999px;
    background: var(--kta-surface, #fff);
}

.keyword-chip-add-input {
    width: clamp(88px, 18ch, 180px);
    min-width: 0;
    height: 22px;
    border: 0;
    background: transparent;
    color: var(--kta-text, #111827);
    font-size: 0.82rem;
    outline: none;
}

.keyword-chip-add-save,
.keyword-chip-add-cancel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--kta-muted, #64748b);
    font-size: 0.7rem;
}

.keyword-chip-add-save:hover,
.keyword-chip-add-save:focus-visible {
    background: rgba(37, 99, 235, 0.1);
    color: var(--kta-primary, #2563eb);
}

.keyword-chip-add-cancel:hover,
.keyword-chip-add-cancel:focus-visible {
    background: rgba(220, 38, 38, 0.1);
    color: var(--kta-danger, #dc2626);
}

.keyword-chip-match-count {
    flex: 0 0 auto;
    padding: 1px 5px;
    border-radius: 999px;
    background: var(--kta-surface-muted, rgba(17, 24, 39, 0.08));
    color: var(--kta-muted, #374151);
    font-size: 0.68rem;
    font-weight: 700;
}

@media (max-width: 640px) {
    .keyword-inline-add-grid {
        grid-template-columns: 1fr;
    }

    .keyword-group-section-header {
        align-items: flex-start;
    }

    .keyword-selection-toolbar {
        flex-wrap: wrap;
        align-items: center;
    }

    .keyword-selection-target-group {
        flex: 1 1 150px;
    }
}

@media (hover: none) {
    .keyword-group-hover-actions {
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }
}

.keyword-inline-derwent,
.keyword-add-derwent-btn {
    display: none !important;
}

.keyword-inline-sidebar,
.keyword-inline-main {
    min-width: 0;
}

.keyword-inline-sidebar-title {
    min-height: 32px;
}

.keyword-inline-group-list {
    overflow: auto;
}

.keyword-inline-detail-header {
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.keyword-inline-title-row {
    flex: 1 1 220px;
    min-width: 0;
    gap: 8px;
}

.keyword-inline-group-name {
    min-width: 0;
    font-weight: 600;
}

.keyword-inline-actions {
    flex: 0 1 auto;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
}

.keyword-inline-select-all {
    gap: 5px;
    margin: 0;
    white-space: nowrap;
    font-size: 0.85rem;
}

.keyword-inline-item-list {
    display: grid;
    gap: 6px;
    min-height: 0;
    overflow: auto;
}

.keyword-inline-row {
    display: grid;
    grid-template-columns: 28px minmax(130px, 1fr) auto 34px 34px;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 6px 8px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-left: 5px solid var(--keyword-row-color, #ffe600);
    border-radius: 8px;
    background: color-mix(in srgb, var(--keyword-row-color, #ffe600) 14%, var(--kta-surface, #fff));
    color: var(--kta-text, #111827);
}

.keyword-inline-label-wrap {
    min-width: 0;
    cursor: pointer;
}

.keyword-inline-label {
    overflow-wrap: anywhere;
    font-weight: 600;
}

.keyword-inline-nav {
    display: inline-flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 4px;
    min-width: 60px;
    white-space: nowrap;
}

.keyword-inline-nav .btn,
.keyword-inline-delete {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    padding: 0;
    align-items: center;
    justify-content: center;
}

.keyword-inline-empty,
.keyword-inline-empty-small {
    padding: 14px;
    border: 1px dashed var(--kta-border, #d1d5db);
    border-radius: 8px;
    background: var(--kta-surface-muted, #f9fafb);
    color: var(--kta-muted, #6b7280);
}

.keyword-inline-empty-title {
    color: var(--kta-muted, #6b7280);
    font-weight: 700;
}

@media (max-width: 760px) {
    .project-keyword-panel-layout .create-keyword-management {
        grid-template-columns: 1fr;
    }

    .keyword-inline-add-grid,
    .keyword-inline-row {
        grid-template-columns: 1fr;
    }

    .keyword-inline-detail-header {
        align-items: stretch;
        flex-direction: column;
    }

    .keyword-inline-actions,
    .keyword-inline-colors {
        justify-content: flex-start;
    }
}

#patent-panel,
#list-panel,
#keyword-panel,
#ai-panel,
#ai-process-results-panel,
#pdf-panel,
#drawing-panel {
    height: 100%;
    overflow: hidden;
}

#list-panel {
    container-type: inline-size;
}

.panel-auto-hide-bar {
    flex: 0 0 auto;
    margin-top: 4px;
    max-height: var(--panel-auto-hide-max-height, 180px);
    opacity: 1;
    transform: translateY(0);
    transition: max-height 0.18s ease, opacity 0.16s ease, padding 0.18s ease, margin 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
    will-change: max-height, opacity, transform;
}

.panel-auto-hide-bar.is-auto-hidden {
    max-height: 0 !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top-color: transparent !important;
    border-bottom-color: transparent !important;
    opacity: 0;
    overflow: hidden !important;
    pointer-events: none;
    transform: translateY(-8px);
}

.panel-auto-hide-scroller.panel-auto-hide-content.is-auto-hide-bar-hidden {
    margin-top: 0 !important;
    padding-top: var(--kta-panel-content-compact-padding, 4px) !important;
}

#container-patent-detail-btns {
    align-items: flex-start !important;
    gap: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
    overflow: hidden;
}

#scrap,
#patent-list,
#list-panel,
#pdf-container,
#drawing-panel-content,
#request-panel-list,
#request-panel-preview,
#keyword-list,
#ai-judgement-list {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}

#scrap::-webkit-scrollbar,
#patent-list::-webkit-scrollbar,
#list-panel::-webkit-scrollbar,
#drawing-panel-content::-webkit-scrollbar,
#request-panel-list::-webkit-scrollbar,
#request-panel-preview::-webkit-scrollbar,
#keyword-list::-webkit-scrollbar,
#ai-judgement-list::-webkit-scrollbar,
#scrap .images-strip::-webkit-scrollbar,
.drawing-thumbs::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

#scrap::-webkit-scrollbar-track,
#patent-list::-webkit-scrollbar-track,
#list-panel::-webkit-scrollbar-track,
#drawing-panel-content::-webkit-scrollbar-track,
#request-panel-list::-webkit-scrollbar-track,
#request-panel-preview::-webkit-scrollbar-track,
#keyword-list::-webkit-scrollbar-track,
#ai-judgement-list::-webkit-scrollbar-track,
#scrap .images-strip::-webkit-scrollbar-track,
.drawing-thumbs::-webkit-scrollbar-track {
    background: transparent;
}

#scrap::-webkit-scrollbar-thumb,
#patent-list::-webkit-scrollbar-thumb,
#list-panel::-webkit-scrollbar-thumb,
#drawing-panel-content::-webkit-scrollbar-thumb,
#request-panel-list::-webkit-scrollbar-thumb,
#request-panel-preview::-webkit-scrollbar-thumb,
#keyword-list::-webkit-scrollbar-thumb,
#ai-judgement-list::-webkit-scrollbar-thumb,
#scrap .images-strip::-webkit-scrollbar-thumb,
.drawing-thumbs::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5e1;
}

#scrap::-webkit-scrollbar-thumb:hover,
#patent-list::-webkit-scrollbar-thumb:hover,
#list-panel::-webkit-scrollbar-thumb:hover,
#drawing-panel-content::-webkit-scrollbar-thumb:hover,
#request-panel-list::-webkit-scrollbar-thumb:hover,
#request-panel-preview::-webkit-scrollbar-thumb:hover,
#keyword-list::-webkit-scrollbar-thumb:hover,
#ai-judgement-list::-webkit-scrollbar-thumb:hover,
#scrap .images-strip::-webkit-scrollbar-thumb:hover,
.drawing-thumbs::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

#scrap {
    padding: var(--kta-panel-content-padding, 8px);
}

#select-patent-message {
    border: 1px dashed var(--kta-border-strong, #d1d5db);
    border-radius: var(--kta-radius, 8px);
    background: linear-gradient(180deg, var(--kta-surface, #fff), var(--kta-bg-muted, #fafafa));
    color: var(--kta-text, #111827);
}

#select-patent-message h4 {
    color: var(--kta-muted, #6b7280) !important;
    font-size: 1rem !important;
    font-weight: 500;
}

#patent-review-toolbar {
    min-width: max-content;
    flex: 0 0 auto;
    flex-shrink: 0;
    overflow: visible;
}

#list-toolbar-filter-row {
    --review-toolbar-expanded-min: 490px;
    --review-toolbar-compact-min: 289px;
    --list-toolbar-tools-width: auto;
    --list-toolbar-button-gap: 2px;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 4px;
    min-width: var(--review-toolbar-compact-min, 289px);
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: thin;
}

#list-toolbar-filter-row > .dropdown,
#list-toolbar-tools,
#btn-classify-all {
    flex-shrink: 0;
}

#list-toolbar-tools {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    margin-left: 0 !important;
    justify-content: flex-end;
    gap: var(--list-toolbar-button-gap, 0px) !important;
    position: relative;
    z-index: 4;
    pointer-events: auto;
}

#patent-review-toolbar .btn,
#btn-list-ai-manage,
#btn-patent-tools,
#btn-add-patent,
#btn-classify-all {
    height: 32px;
    padding: 4px 9px;
    font-size: 0.82rem;
}

#patent-review-toolbar .btn-group {
    flex: 0 0 auto;
    min-width: max-content;
    gap: 8px;
}

#patent-review-toolbar .patent-folder-tab {
    --bs-btn-color: var(--kta-muted, #6b7280);
    --bs-btn-bg: var(--kta-surface, #fff);
    --bs-btn-border-color: var(--kta-border, #e5e7eb);
    --bs-btn-hover-color: var(--kta-text, #111827);
    --bs-btn-hover-bg: var(--kta-surface-hover, #f1f5f9);
    --bs-btn-hover-border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.35);
    --bs-btn-active-color: var(--kta-primary, #0091ea);
    --bs-btn-active-bg: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.1);
    --bs-btn-active-border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.48);
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    gap: 5px;
    min-width: 84px;
    height: 36px;
    border: 1px solid var(--kta-border, #e5e7eb) !important;
    border-radius: 7px !important;
    background: var(--bs-btn-bg);
    color: var(--bs-btn-color);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.06);
    white-space: nowrap;
}

html.app-lang-en #patent-review-toolbar .patent-folder-tab {
    font-size: calc(0.82rem - 1pt);
}

html.app-lang-en #patent-manage-table thead th:nth-child(3),
html.app-lang-en #patent-manage-table thead th:nth-child(4) {
    font-size: calc(0.875rem - 1pt);
}

#patent-review-toolbar .patent-folder-tab::before {
    display: none;
}

#btn-list-ai-manage,
#btn-patent-tools {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    width: 36px;
    min-width: 36px;
    height: 32px;
    padding-right: 0;
    padding-left: 0;
    border: 0 !important;
    background: transparent;
    position: relative;
    z-index: 5;
    pointer-events: auto;
}

#btn-list-ai-manage {
    position: relative;
    right: auto;
}

#btn-list-ai-manage .list-ai-manage-gif {
    display: block;
    width: 22px;
    height: 22px;
    background-image: url("../assets/ai-status-spark-still.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

#btn-list-ai-manage:hover .list-ai-manage-gif,
#btn-list-ai-manage:focus-visible .list-ai-manage-gif {
    background-image: url("../assets/ai-status-spark.gif");
}

#btn-list-ai-manage:hover,
#btn-list-ai-manage:focus-visible {
    background: var(--kta-surface-muted, #f3f4f6);
}

#btn-patent-tools:hover,
#btn-patent-tools:focus-visible,
#btn-patent-tools[aria-expanded="true"] {
    background: var(--kta-surface-muted, #f3f4f6);
}

#container-patent-detail-btns .patent-detail-tools {
    margin-left: auto;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
}

/* 특허 원문/영문 토글 */
#btn-switch-patent-language {
    display: inline-flex;
    align-items: center;
}

#btn-switch-patent-language .patent-language-button {
    min-height: 32px;
    padding: 0 10px;
    font-size: 0.82rem;
    font-weight: 650;
}

#btn-switch-patent-language .btn-check:checked + .patent-language-button {
    background-color: var(--kta-primary, #0091ea);
    border-color: var(--kta-primary, #0091ea);
    color: #fff;
}

#patent-review-toolbar .btn-check:checked + .patent-folder-tab {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.42) !important;
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.1);
    color: var(--kta-primary, #0091ea);
}

#patent-review-toolbar .patent-folder-tab[for="rf-all"] i {
    color: var(--kta-primary, #0091ea);
}

#patent-review-toolbar .patent-folder-tab[for="rf-pending"] i {
    color: var(--kta-primary, #0091ea);
}

#patent-review-toolbar .patent-folder-tab[for="rf-reviewed"] i {
    color: var(--kta-success, #198754);
}

#patent-review-toolbar .patent-folder-tab[for="rf-unreviewed"] i {
    color: var(--kta-warning, #b58100);
}

#patent-review-toolbar .btn-check:checked + .patent-folder-tab[for="rf-reviewed"] {
    border-color: color-mix(in srgb, var(--kta-success, #198754) 42%, transparent) !important;
    background: var(--kta-success-bg, rgba(25, 135, 84, 0.08));
    color: var(--kta-success, #146c43);
}

#patent-review-toolbar .btn-check:checked + .patent-folder-tab[for="rf-unreviewed"] {
    border-color: color-mix(in srgb, var(--kta-warning, #d97706) 42%, transparent) !important;
    background: var(--kta-warning-bg, rgba(255, 193, 7, 0.14));
    color: var(--kta-warning, #664d03);
}

#review-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 max-content;
    width: max-content;
    min-width: 78px;
    max-width: none;
    padding-right: 10px;
    padding-left: 10px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 999px;
    color: var(--kta-muted, #6b7280) !important;
    background: var(--kta-surface, #fff) !important;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    position: relative;
    z-index: 1;
    pointer-events: none;
}

#patent-list {
    margin-top: var(--kta-panel-content-padding, 8px);
    padding: var(--kta-panel-content-padding, 8px);
    border: 0 !important;
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
}

#patent-list .patent-publication-row {
    display: none !important;
}

.list-item {
    margin-bottom: 6px;
    padding: 9px 10px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    box-shadow: none;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
    cursor: grab;
    -webkit-user-select: none;
    user-select: none;
}

.list-item:active {
    cursor: grabbing;
}

.list-item.is-dragging {
    opacity: 0.55;
}

.list-item.is-picked-up {
    border-style: dashed;
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.62);
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.1);
    box-shadow: 0 8px 22px rgba(17, 24, 39, 0.12);
    transform: scale(0.985);
}

.list-item input,
.list-item textarea,
.list-item label,
.list-item h5,
.list-item span {
    -webkit-user-select: none;
    user-select: none;
}

.patent-drag-ghost {
    position: fixed;
    top: -1000px;
    left: -1000px;
    z-index: 9999;
    max-width: 180px;
    padding: 5px 10px;
    border: 1px solid rgba(var(--kta-primary-rgb, 0, 145, 234), 0.38);
    border-radius: 7px;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    box-shadow: 0 8px 22px rgba(17, 24, 39, 0.16);
    font-size: 0.78rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
}

.list-item:hover {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.45);
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.04);
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.08);
    transform: translateY(-1px);
}

.list-item.selected {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.70);
    background: color-mix(in srgb, var(--kta-surface, #fff) 82%, var(--kta-primary, #0091ea));
    color: var(--kta-text, #111827);
    box-shadow: 0 0 0 2px rgba(var(--kta-primary-rgb, 0, 145, 234), 0.24);
}

.patent-card-header {
    min-height: 30px;
    gap: 8px;
}

.patent-card-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    flex: 1 1 auto;
}

.patent-card-title-text {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    flex: 0 1 auto;
}

.patent-card-title .patent-publication {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.patent-card-title .patent-card-state-actions {
    margin-left: 2px;
}

.patent-card-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}

.patent-card-state-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}

.patent-state-toggle {
    --bs-btn-color: var(--kta-muted, #6b7280);
    --bs-btn-bg: transparent;
    --bs-btn-hover-color: var(--kta-text, #111827);
    --bs-btn-hover-bg: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.08);
    --bs-btn-border-color: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid transparent;
    color: var(--kta-muted, #6b7280);
    background: transparent;
}

.patent-state-toggle:hover {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.25);
    background: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.06);
}

.patent-confirm-toggle.is-active {
    color: var(--kta-success, #198754);
}

.patent-bookmark-toggle.is-active {
    color: var(--kta-warning, #d97706);
}

.patent-ai-run-btn {
    --kta-ai-spark-size: 14px;
    --bs-btn-color: var(--kta-primary, #0091ea);
    --bs-btn-bg: transparent;
    --bs-btn-hover-color: var(--kta-primary, #0091ea);
    --bs-btn-hover-bg: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.08);
    --bs-btn-border-color: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid transparent;
}

.patent-ai-run-btn:hover {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.25);
}

.patent-ai-run-btn.is-loading {
    pointer-events: none;
}

.patent-ai-summary-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    max-width: 72px;
    min-height: 20px;
    padding: 2px 7px;
    border: 1px solid rgba(107, 114, 128, 0.28);
    border-radius: 999px;
    background: rgba(107, 114, 128, 0.08);
    color: var(--kta-muted, #6b7280);
    font-size: 0.68rem;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

.patent-ai-summary-badge:hover {
    filter: brightness(0.97);
}

.patent-ai-summary-badge.is-hit {
    border-color: rgba(25, 135, 84, 0.28);
    background: rgba(25, 135, 84, 0.10);
    color: #146c43;
}

.patent-ai-summary-badge.is-mixed {
    border-color: rgba(13, 110, 253, 0.28);
    background: rgba(13, 110, 253, 0.09);
    color: #0a58ca;
}

.patent-ai-summary-badge.is-review {
    border-color: rgba(217, 119, 6, 0.32);
    background: rgba(245, 158, 11, 0.14);
    color: #92400e;
}

.patent-ai-summary-badge.is-error {
    border-color: rgba(220, 53, 69, 0.30);
    background: rgba(220, 53, 69, 0.10);
    color: #b02a37;
}

.patent-ai-summary-badge.is-empty {
    border-color: rgba(75, 85, 99, 0.22);
    background: rgba(75, 85, 99, 0.08);
    color: #4b5563;
}

.list-item h5,
.list-item h3 {
    margin: 0;
    color: var(--kta-text, #111827);
    font-size: 0.94rem;
    font-weight: 650;
}

.patent-publication-row {
    display: none !important;
}

.dynamic-extra-fields {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 6px;
    overflow: hidden;
}

.accordion-tree-toggle {
    display: inline-flex;
    align-items: center;
    width: 100%;
    min-width: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    line-height: 1.3;
    cursor: pointer;
}

.accordion-tree-toggle:focus-visible {
    outline: 2px solid rgba(var(--kta-primary-rgb, 0, 145, 234), 0.35);
    outline-offset: 2px;
    border-radius: 4px;
}

.accordion-tree-toggle span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.accordion-tree-caret {
    flex: 0 0 auto;
    width: 14px;
}

.dynamic-extra-fields:empty {
    display: none;
}

.dynamic-extra-fields > .d-flex {
    min-height: 28px;
    margin-bottom: 0 !important;
    padding: 0;
}

.dynamic-extra-group-row {
    min-height: 26px;
    display: flex;
    align-items: center;
}

.dynamic-extra-group-toggle {
    min-height: 26px;
    padding-top: 2px;
    padding-bottom: 2px;
    font-size: 0.76rem;
}

.dynamic-extra-leaf-row {
    min-height: 28px;
}

.dynamic-extra-fields .v-fd-key {
    flex: 0 0 78px;
    width: 78px !important;
    max-width: 78px !important;
    min-width: 0;
    color: var(--kta-muted, #6b7280);
    font-size: 0.76rem;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dynamic-extra-fields .form-control {
    min-height: 28px;
    height: 28px;
    padding: 3px 8px;
    font-size: 0.8rem;
}

@container (max-width: 500px) {
    #patent-review-toolbar .patent-folder-tab {
        flex-basis: 36px;
        min-width: 36px;
        width: 36px;
        padding-right: 0;
        padding-left: 0;
    }

    #patent-review-toolbar .patent-folder-tab span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    #patent-review-toolbar .btn-group {
        gap: 5px;
    }
}

.dynamic-extra-fields .form-control:focus {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.45);
    box-shadow: 0 0 0 2px rgba(var(--kta-primary-rgb, 0, 145, 234), 0.12);
}

.list-item .form-group {
    margin-bottom: 10px !important;
}

.list-item label {
    color: var(--kta-muted, #6b7280);
    font-size: 0.78rem;
}

.list-item .form-control,
.list-item textarea {
    min-height: 34px;
    font-size: 0.84rem;
}

.btns-patent-control .btn {
    width: 30px;
    height: 30px;
    padding: 0;
}

#patent-list .btns-patent-control {
    display: inline-flex !important;
}

.patent-manage-table-wrap {
    max-height: 58vh;
    overflow: hidden;
}

.patent-manage-dialog {
    max-width: min(620px, calc(100vw - 32px));
}

#patentManageModal .settings-manage-table.is-grid-table,
#viewpointManageModal .settings-manage-table.is-grid-table {
    --settings-manage-header-height: 38px;
    --settings-manage-scrollbar-width: 12px;
    width: 100%;
    max-height: inherit;
}

#patentManageModal .settings-manage-table.is-grid-table thead,
#patentManageModal .settings-manage-table.is-grid-table tbody,
#viewpointManageModal .settings-manage-table.is-grid-table thead,
#viewpointManageModal .settings-manage-table.is-grid-table tbody {
    display: block;
    box-sizing: border-box;
}

#patentManageModal .settings-manage-table.is-grid-table thead,
#viewpointManageModal .settings-manage-table.is-grid-table thead {
    padding-inline-end: var(--settings-manage-scrollbar-width);
    background: var(--kta-surface-muted, #f8f9fa);
}

#patentManageModal .settings-manage-table.is-grid-table tbody,
#viewpointManageModal .settings-manage-table.is-grid-table tbody {
    max-height: calc(58vh - var(--settings-manage-header-height));
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
}

#patentManageModal .settings-manage-table.is-grid-table tbody::-webkit-scrollbar,
#viewpointManageModal .settings-manage-table.is-grid-table tbody::-webkit-scrollbar {
    width: var(--settings-manage-scrollbar-width);
}

#patentManageModal .settings-manage-table.is-grid-table thead tr,
#patentManageModal .settings-manage-table.is-grid-table tbody tr,
#viewpointManageModal .settings-manage-table.is-grid-table thead tr,
#viewpointManageModal .settings-manage-table.is-grid-table tbody tr {
    display: grid;
    width: 100%;
    grid-template-columns: var(--kta-table-columns);
}

#patent-manage-table.is-grid-table thead tr,
#patent-manage-table.is-grid-table tbody tr {
    grid-template-columns: var(--kta-table-columns, 40px 48px 52px 64px minmax(150px, 1fr) minmax(150px, 0.9fr) 76px 44px);
}

#viewpoint-manage-table.is-grid-table thead tr,
#viewpoint-manage-table.is-grid-table tbody tr {
    grid-template-columns: var(--kta-table-columns, 40px 44px 48px minmax(150px, 1fr) 44px 44px);
}

#patentManageModal .settings-manage-table.is-grid-table thead th,
#viewpointManageModal .settings-manage-table.is-grid-table thead th {
    display: inline-flex;
    align-items: center;
    min-height: var(--settings-manage-header-height);
    height: var(--settings-manage-header-height);
    white-space: nowrap;
}

#patentManageModal .settings-manage-table.is-grid-table th,
#patentManageModal .settings-manage-table.is-grid-table td,
#viewpointManageModal .settings-manage-table.is-grid-table th,
#viewpointManageModal .settings-manage-table.is-grid-table td {
    min-width: 0;
    width: auto !important;
}

#patentManageModal .settings-manage-table.is-grid-table thead th.text-center,
#viewpointManageModal .settings-manage-table.is-grid-table thead th.text-center {
    justify-content: center;
}

#patentManageModal .settings-manage-table.is-grid-table tbody tr.common-table-virtual-spacer > td,
#viewpointManageModal .settings-manage-table.is-grid-table tbody tr.common-table-virtual-spacer > td {
    grid-column: 1 / -1;
}

.viewpoint-manage-dialog {
    max-width: min(560px, calc(100vw - 32px));
}

.patent-html-td {
    width: 44px;
    text-align: center;
    vertical-align: middle;
}

.patent-manage-original {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.patent-manage-file-actions-td {
    width: 76px;
    text-align: center;
    vertical-align: middle;
}

.patent-manage-file-actions {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.14s ease, visibility 0.14s ease;
}

.patent-html-btn,
.patent-pdf-btn,
.patent-file-upload-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    text-decoration: none;
    transition: background 0.15s;
}

.patent-html-btn:hover,
.patent-pdf-btn:hover,
.patent-file-upload-btn:hover {
    background: rgba(0, 0, 0, 0.06);
}

.patent-html-btn[data-status="connected"]:hover,
.patent-pdf-btn[data-status="connected"]:hover {
    background: rgba(40, 167, 69, 0.08);
    cursor: pointer;
}

@media (hover: none), (pointer: coarse) {
    .patent-manage-file-actions {
        opacity: 1;
        visibility: visible;
    }
}

.kta-broken-link-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: #adb5bd;
    font-size: 18px;
    line-height: 1;
}

.kta-broken-link-icon::after {
    content: "";
    position: absolute;
    width: 2px;
    height: 17px;
    border-radius: 2px;
    background: currentColor;
    transform: rotate(42deg);
}

.viewpoint-manage-table-wrap {
    max-height: 58vh;
    overflow: hidden;
}

.viewpoint-name-cell {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.viewpoint-name-cell .form-control {
    min-width: 0;
}

.settings-manage-table tbody tr {
    cursor: grab;
}

.settings-manage-table tbody tr.create-viewpoint-group-row,
.settings-manage-table tbody tr[data-node-type="group"] {
    cursor: default;
}

.settings-manage-table tbody tr:active {
    cursor: grabbing;
}

.settings-manage-table tbody tr.create-viewpoint-group-row:active,
.settings-manage-table tbody tr[data-node-type="group"]:active {
    cursor: default;
}

.settings-manage-table tbody tr.is-dragging {
    opacity: 0.45;
}

.settings-manage-table tbody tr.is-drag-over {
    box-shadow: inset 0 2px 0 var(--kta-primary, #0091ea);
}

.settings-drag-handle {
    width: 34px;
    text-align: center;
    color: var(--kta-muted, #6b7280);
    cursor: grab;
}

.settings-inline-input[readonly],
.dynamic-extra-fields .settings-inline-input[readonly] {
    border-color: transparent;
    color: var(--kta-muted, #6b7280);
    background: var(--kta-surface-muted, #eef0f3);
    cursor: pointer;
}

.settings-inline-input.is-editing,
.dynamic-extra-fields .settings-inline-input.is-editing {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.45);
    color: var(--kta-text, #111827);
    background: var(--kta-input-bg, #fff);
    cursor: text;
}

.dynamic-extra-fields .settings-inline-input.is-viewpoint-editable {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.2);
    color: var(--kta-text, #111827);
    background: var(--kta-input-bg, #fff);
    cursor: text;
}

.patent-viewpoint-lock-btn,
.patent-viewpoint-visible-btn {
    width: 36px;
    height: 36px;
    padding: 0;
}

.patent-viewpoint-lock-btn.active {
    border-color: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.42);
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.08);
    color: var(--kta-primary, #0d6efd);
}

.patent-viewpoint-visible-btn.active {
    border-color: rgba(108, 117, 125, 0.42);
    background: rgba(108, 117, 125, 0.08);
    color: #6c757d;
}

.settings-manage-table tbody tr.is-viewpoint-hidden .viewpoint-name-cell,
.settings-manage-table tbody tr.is-viewpoint-hidden .viewpoint-name,
.settings-manage-table tbody tr.is-viewpoint-hidden .create-viewpoint-name {
    opacity: 0.62;
}

.settings-delete-btn {
    visibility: hidden;
    width: 30px;
    height: 30px;
    padding: 0;
    text-decoration: none;
    border: 0 !important;
    box-shadow: none !important;
}

.settings-manage-table tbody tr:hover .settings-delete-btn {
    visibility: visible;
}

#patent-manage-table tbody tr.is-pending-delete {
    color: var(--kta-muted, #6b7280);
    background: var(--kta-surface-muted, #f8f9fa);
}

#patent-manage-table tbody tr.is-pending-delete .patent-manage-original span,
#patent-manage-table tbody tr.is-pending-delete .patent-manage-publication {
    color: var(--kta-muted, #6b7280);
    text-decoration: line-through;
}

#patent-manage-table tbody tr.is-pending-delete .patent-manage-state,
#patent-manage-table tbody tr.is-pending-delete .patent-manage-bookmark,
#patent-manage-table tbody tr.is-pending-delete .patent-manage-file-actions {
    opacity: 0.45;
}

#patent-manage-table tbody tr.is-pending-delete .settings-delete-btn {
    visibility: visible;
    opacity: 1;
}

.patent-manage-state,
.patent-manage-bookmark {
    flex: 0 0 auto;
    cursor: pointer;
}

.viewpoint-manage-table-wrap .settings-inline-input.is-viewpoint-editable[readonly] {
    border-color: rgba(var(--kta-primary-rgb, 0, 145, 234), 0.2);
    color: var(--kta-text, #111827);
    background: var(--kta-input-bg, #fff);
    cursor: pointer;
}

.viewpoint-manage-table-wrap tr.is-viewpoint-locked .settings-inline-input[readonly] {
    border-color: transparent;
    color: var(--kta-muted, #6b7280);
    background: var(--kta-surface-muted, #eef0f3);
    cursor: default;
}

.settings-delete-btn:disabled,
.settings-delete-btn[aria-disabled="true"] {
    color: var(--kta-muted, #6b7280) !important;
    opacity: 0.38;
    pointer-events: none;
}

.patent-manage-publication[readonly] {
    color: var(--kta-text, #111827);
    background: var(--kta-surface-muted, #f8f9fa);
    cursor: default;
}

/* 툴바 스크롤 숨김/표시 (grid-template-rows 트릭) */
.list-toolbar-collapse {
    flex: 0 0 auto;
    overflow: visible;
}
.list-toolbar-collapse > #list-panel-toolbar {
    min-height: auto;
    overflow: visible;
}

#list-search-bar {
    padding-bottom: 2px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
    margin-bottom: 6px !important;
}

#list-search-bar .form-select,
#list-search-bar .form-control {
    height: 34px;
    min-height: 34px;
    font-family: var(--kta-font-sans);
    font-size: 0.88rem;
    font-weight: 500;
    line-height: 1.25;
    color: var(--kta-text, #111827);
}

#list-search-bar .form-select {
    padding-top: 0;
    padding-bottom: 0;
    text-align: left;
    text-align-last: left;
}

#list-search-bar .form-control {
    padding-top: 0;
    padding-bottom: 0;
}

#list-search-bar .form-control::placeholder {
    color: var(--kta-input-placeholder, #94a3b8);
    font-family: var(--kta-font-sans);
    font-size: 0.88rem;
    font-weight: 500;
    opacity: 1;
}

#filter-mode {
    flex: 0 0 120px !important;
    max-width: 120px !important;
}

#filter-input {
    flex: 1 1 auto !important;
}


#ai-panel,
#ai-process-results-panel {
    padding: 0;
}

#ai-panel > .px-2 {
    padding-right: 0 !important;
    padding-left: 0 !important;
}

#ai-panel-toolbar,
#ai-process-results-toolbar,
.ai-panel-toolbar {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    min-height: 42px;
    margin-bottom: 0;
    padding: 6px 10px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
    background: var(--kta-surface, #fff);
}

#ai-batch-progress {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

#ai-panel-toolbar.common-table-toolbar,
#ai-process-results-toolbar.common-table-toolbar {
    justify-content: flex-end;
    margin-bottom: 0;
}

#ai-panel-toolbar .common-table-toolbar-title,
#ai-process-results-toolbar .common-table-toolbar-title {
    display: none;
}

#ai-panel-toolbar #btn-ai-add .kta-ai-spark-icon,
#ai-process-results-toolbar #btn-ai-add .kta-ai-spark-icon {
    --kta-ai-spark-size: 16px;
}

#ai-agent-frame,
.ai-agent-frame {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    border: 0;
    background: var(--kta-surface, #fff);
}

#ai-process-results-panel .content-wrapper,
#ai-judgement-list,
.list-box {
    border: 0 !important;
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
}

#ai-judgement-list {
    padding: var(--kta-panel-content-padding, 8px);
    overflow: auto;
    color: var(--kta-text, #111827);
    font-size: 0.9rem;
    line-height: 1.5;
}

.ai-judgement-section {
    padding: 10px 0 12px !important;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
}

.ai-judgement-section:last-child {
    border-bottom: 0;
}

.ai-judgement-section-title {
    margin-bottom: 8px !important;
    color: var(--kta-text, #111827);
    font-size: 0.92rem !important;
    font-weight: 750;
}

.ai-judgement-card-list {
    gap: 8px;
}

.ai-judgement-card {
    overflow: hidden;
    border: 1px solid var(--kta-border, #e5e7eb) !important;
    border-radius: var(--kta-radius, 8px) !important;
    background: var(--kta-surface, #fff);
    box-shadow: none;
}

.ai-judgement-card + .ai-judgement-card {
    margin-top: 8px;
}

.ai-judgement-card-main {
    color: var(--kta-text, #111827);
    text-decoration: none;
}

.ai-judgement-card-main:hover,
.ai-judgement-card-main:focus {
    background: var(--kta-surface-muted, #f7f7f8);
    color: var(--kta-text, #111827);
    text-decoration: none;
}

.ai-judgement-card-title {
    font-size: 0.95rem !important;
    line-height: 1.35;
}

.ai-judgement-card-reason {
    margin-top: 4px;
    color: var(--kta-muted, #6b7280) !important;
    font-size: 0.84rem;
    line-height: 1.45;
}

.ai-judgement-card-footer {
    gap: 8px;
}

.ai-judgement-score {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--kta-surface-muted, #f7f7f8);
    font-size: 0.78rem;
    font-weight: 750;
    line-height: 1;
}

.ai-judgement-score-high {
    color: var(--kta-success, #15803d);
    background: var(--kta-success-bg, #f0fdf4);
}

.ai-judgement-score-good {
    color: var(--kta-primary, #0091ea);
    background: rgba(0, 145, 234, 0.08);
}

.ai-judgement-score-mid {
    color: var(--kta-warning, #d97706);
    background: var(--kta-warning-bg, #fff7ed);
}

.ai-judgement-score-low {
    color: var(--kta-muted, #6b7280);
}

#aiManageModal .ai-manage-dialog {
    width: min(1200px, calc(100vw - 32px));
    max-width: min(1200px, calc(100vw - 32px));
}

#aiManageModal .modal-content {
    color: var(--kta-text, #111827);
    font-size: 0.92rem;
}

#aiManageModal .modal-header .modal-title {
    font-size: 1.05rem;
    font-weight: 750;
}

#aiManageModal .modal-body {
    padding: 16px;
}

#aiManageModal .form-label {
    color: var(--kta-text, #111827);
    font-size: 0.86rem;
    font-weight: 750;
}

#aiManageModal .form-check {
    min-width: 0;
    margin-bottom: 0;
}

#aiManageModal .form-check-label {
    min-width: 0;
    color: var(--kta-text, #111827);
    font-size: 0.86rem;
    line-height: 1.35;
}

#aiManageModal .form-check-input {
    margin-top: 0.22rem;
    border-color: var(--kta-border-strong, #d1d5db);
}

.ai-manage-tabs {
    border-bottom: 1px solid var(--kta-border, #e5e7eb) !important;
}

.ai-manage-content {
    min-width: 0;
}

.ai-manage-list-grid > [class*="col-"] {
    display: flex;
    min-width: 0;
}

.ai-manage-col {
    min-height: 0;
}

.ai-manage-stack {
    display: grid !important;
    gap: 12px;
}

.ai-manage-section {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
}

.ai-manage-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex: 0 0 auto;
    min-height: 42px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
    background: var(--kta-surface-muted, #f7f7f8);
}

.ai-manage-section-header .form-label {
    min-width: 0;
    margin-bottom: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-manage-select-all {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 6px;
}

.ai-manage-list {
    flex: 1 1 auto;
    min-height: 176px;
    max-height: 420px;
    overflow: auto;
    padding: 8px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
}

.ai-manage-section .ai-manage-list {
    border: 0;
    border-radius: 0;
}

.ai-manage-section-compact .ai-manage-list {
    min-height: 112px;
    max-height: 184px;
}

.ai-manage-check-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-height: 32px;
    padding: 6px 7px;
    border-radius: 6px;
}

.ai-manage-check-row:hover {
    background: var(--kta-surface-muted, #f7f7f8);
}

.ai-manage-check-row .form-check-input {
    flex: 0 0 auto;
    margin-left: 0;
}

.ai-manage-check-row .form-check-label {
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}

.ai-manage-actions-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(160px, 0.5fr) minmax(160px, 0.5fr);
    gap: 12px;
    align-items: stretch;
}

.ai-exploration-card,
.ai-manage-box {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
}

.ai-exploration-control {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-top: 8px;
}

.ai-exploration-label {
    flex: 0 0 48px;
    color: var(--kta-muted, #6b7280);
    font-size: 0.78rem;
    white-space: nowrap;
}

.ai-exploration-label-end {
    text-align: right;
}

.ai-exploration-number {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 112px;
}

.ai-exploration-number .form-control {
    max-width: 78px;
}

.ai-edit-toolbar {
    margin-bottom: 8px;
}

.ai-edit-proc-list {
    min-height: 44px;
    max-height: 160px;
}

.ai-edit-proc-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 38px;
    padding: 5px 6px 5px 10px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
}

.ai-edit-proc-row:last-child {
    border-bottom: 0;
}

.ai-edit-proc-row:hover {
    background: var(--kta-surface-muted, #f7f7f8);
}

.ai-edit-proc-name {
    min-width: 0;
    overflow: hidden;
    color: var(--kta-text, #111827);
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-edit-form-wrap {
    padding-top: 12px;
    border-top: 1px solid var(--kta-border, #e5e7eb);
}

.ai-edit-form-header,
.ai-edit-form-actions,
.ai-apply-action-row,
.ai-upload-row,
.ai-test-row,
.ai-min-score-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.ai-edit-form-header {
    justify-content: space-between;
    margin-bottom: 12px;
}

.ai-edit-form-actions {
    justify-content: flex-end;
    padding-top: 10px;
    border-top: 1px solid var(--kta-border, #e5e7eb);
}

.ai-chip-check-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.ai-chip-check-group .form-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ai-upload-row {
    flex-wrap: wrap;
}

.ai-upload-row #ai-edit-req-file-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-mode-toggle .btn {
    min-height: 30px;
    font-weight: 650;
}

.ai-edit-items-wrap,
.ai-edit-tree-wrap,
.ai-edit-test-result {
    max-height: 300px;
    overflow: auto;
    padding: 8px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    background: var(--kta-surface, #fff);
}

.ai-edit-test-result {
    max-height: 200px;
    background: var(--kta-surface-muted, #f7f7f8);
}

.ai-edit-item-row,
.ai-edit-tree-node {
    display: grid;
    gap: 5px;
    margin-bottom: 6px;
}

.ai-edit-tree-node {
    margin-left: calc(var(--ai-tree-depth, 0) * 18px);
}

.ai-edit-input-group .input-group-text,
.ai-edit-subitem-marker,
.ai-edit-item-idx {
    min-width: 2.4rem;
    justify-content: center;
    font-weight: 650;
}

.ai-edit-item-input {
    font-size: 0.95rem;
}

.ai-edit-subitems {
    display: grid;
    gap: 5px;
    padding-left: 28px;
}

.ai-test-row #ai-edit-test-num {
    max-width: 240px;
}

.ai-apply-table-wrap {
    max-height: 360px;
}

#ai-apply-criteria-table th:nth-child(1),
#ai-apply-criteria-table th:nth-child(2) {
    width: 40%;
}

#ai-apply-criteria-table th:nth-child(3) {
    width: 20%;
}

.ai-min-score-row .form-label {
    flex: 0 0 120px;
}

.ai-min-score-row .form-control {
    max-width: 120px;
}

.ai-apply-note-list {
    padding-left: 1.15rem;
    font-size: 0.86rem;
    line-height: 1.5;
}

.ai-batch-progress {
    flex-shrink: 0;
    min-height: 26px;
    max-width: min(420px, 48vw);
    padding: 3px 7px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 999px;
    background: var(--kta-surface, #fff);
    background: color-mix(in srgb, var(--kta-surface, #fff) 92%, var(--kta-primary, #0d6efd) 8%);
    color: var(--kta-text, #202124);
    gap: 6px;
    font-size: 0.72rem;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.ai-batch-progress-mini {
    display: inline-flex;
    align-items: center;
}

.ai-batch-live-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 999px;
    background: var(--kta-muted, #6b7280);
}

.ai-batch-progress.is-active .ai-batch-live-dot {
    background: var(--kta-primary, #0d6efd);
    box-shadow: 0 0 0 4px rgba(13, 110, 253, 0.12);
    animation: ai-batch-live-pulse 1.5s ease-in-out infinite;
}

.ai-batch-progress.is-done .ai-batch-live-dot {
    background: var(--kta-success, #198754);
}

.ai-batch-progress.is-stale .ai-batch-live-dot,
.ai-batch-progress.has-failure .ai-batch-live-dot {
    background: var(--kta-warning, #f59f00);
}

.ai-batch-progress-state {
    font-weight: 600;
}

.ai-batch-progress-counts {
    color: var(--kta-muted, #6b7280);
}

.ai-batch-progress-track {
    position: relative;
    display: block;
    width: 58px;
    height: 3px;
    flex: 0 0 58px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.12);
}

.ai-batch-progress-track #ai-batch-progress-bar {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--kta-primary, #0d6efd);
    transition: width 0.24s ease;
}

.ai-batch-progress-track #ai-batch-progress-bar.bg-success {
    background: var(--kta-success, #198754);
}

.ai-batch-progress-track #ai-batch-progress-bar.bg-warning {
    background: var(--kta-warning, #f59f00);
}

#ai-batch-progress-detail {
    max-width: min(170px, 18vw);
    color: var(--kta-muted, #6b7280);
}

@keyframes ai-batch-live-pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 0.82;
    }
    50% {
        transform: scale(1.18);
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ai-batch-progress.is-active .ai-batch-live-dot {
        animation: none;
    }
}

@media (max-width: 980px) {
    #ai-batch-progress-detail {
        display: none;
    }

    .ai-batch-progress {
        max-width: 60vw;
    }
}

@media (max-width: 720px) {
    .ai-batch-progress-track {
        width: 44px;
        flex-basis: 44px;
    }
}

.ai-list-meta {
    padding: 0 2px;
}

.ai-manage-status-item {
    min-height: 34px;
    border-color: var(--kta-border, #e5e7eb) !important;
}

@media (max-width: 980px) {
    .ai-manage-actions-grid {
        grid-template-columns: 1fr;
    }

    .ai-manage-stack {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    #aiManageModal .ai-manage-dialog {
        width: calc(100vw - 16px);
        max-width: calc(100vw - 16px);
    }

    #aiManageModal .modal-body {
        padding: 12px;
    }

    .ai-manage-stack {
        grid-template-columns: 1fr;
    }

    .ai-exploration-control,
    .ai-min-score-row,
    .ai-test-row {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .ai-exploration-label,
    .ai-exploration-number,
    .ai-min-score-row .form-label {
        flex: 1 1 auto;
    }

    .ai-test-row #ai-edit-test-num {
        max-width: none;
    }
}

#keyword-panel #add-keyword-group {
    height: 34px;
    font-size: 0.84rem;
}

.pdf-controls {
    border-color: var(--kta-border, #e5e7eb) !important;
    background: var(--kta-surface, #fff) !important;
    color: var(--kta-text, #111827);
    box-shadow: none;
}

.patent-detail {
    padding: 18px;
    color: var(--kta-text, #111827);
    line-height: 1.65;
}

.patent-detail h1 {
    font-size: 1.35rem;
    letter-spacing: 0;
}

.patent-detail h2 {
    margin-top: 28px;
    font-size: 1.05rem;
}

.patent-detail dt {
    border: 1px solid var(--kta-border, #e5e7eb);
    background: var(--kta-surface-muted, #f7f7f8);
}

.patent-detail dd {
    border-bottom-color: var(--kta-border, #e5e7eb);
}

#aiManageModal .modal-content,
#aiApplySettingsModal .modal-content {
    border-radius: var(--kta-radius, 8px);
}

#aiManageModal .modal-header .modal-title {
    font-size: 1.05rem;
    font-weight: 750;
}

#aiManageModal .form-label,
#aiManageModal .form-check-label {
    font-size: 0.86rem;
}

#aiManageModal #ai-pub-list,
#aiManageModal #ai-proc-list,
#aiManageModal #ai-running-list,
#aiManageModal #ai-wait-list {
    background: var(--kta-surface, #fff);
}

@media (max-width: 1100px) {
    #split-container {
        flex-direction: column;
        overflow: auto;
    }

    #split-container > .panel:not(.d-none) {
        width: 100% !important;
        min-height: 420px;
    }

    #split-container > .gutter {
        display: none !important;
    }

    #split-container.is-dock-layout {
        overflow: hidden;
    }
}

@media (max-width: 768px) {
    #project-info .row,
    #project-info .d-flex {
        align-items: flex-start !important;
    }

    #project-info .col-auto {
        width: 100%;
    }

    #project-info .btn-group {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        gap: 6px;
    }

    #project-info h4#project-name {
        max-width: 58vw;
    }
}

/* =============================
   글꼴 설정 커스텀 패널
   ============================= */
#font-preference-panel,
#patent-body-view-panel {
    position: fixed;
    z-index: 9999;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: var(--kta-radius, 8px);
    box-shadow: 0 6px 24px rgba(17, 24, 39, 0.13);
    padding: 14px 16px;
    min-width: 240px;
    max-width: 300px;
}

#patent-body-view-panel {
    min-width: 260px;
    max-width: 320px;
}

.patent-body-view-options {
    display: grid;
    gap: 6px;
}

.patent-body-view-option {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 28px;
    margin: 0;
    font-size: 0.84rem;
    color: var(--kta-text, #202124);
    cursor: pointer;
}

.patent-body-view-option:hover {
    color: var(--kta-primary, #0091ea);
}

.patent-body-view-option input {
    flex: 0 0 auto;
    accent-color: var(--kta-primary, #0091ea);
}

.font-pref-section {
    margin-bottom: 10px;
}
.font-pref-section:last-child { margin-bottom: 0; }

.font-pref-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--kta-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
}

.font-pref-divider {
    border-top: 1px solid var(--kta-border, #e5e7eb);
    margin: 10px 0;
}

/* 프리셋 버튼 */
.font-pref-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.font-preset-btn.active {
    background-color: var(--kta-primary, #0091ea) !important;
    border-color: var(--kta-primary, #0091ea) !important;
    color: #fff !important;
}

/* 직접 입력 래퍼 */
.font-input-wrap {
    position: relative;
}

/* 자동완성 드롭다운 */
#font-autocomplete-dropdown {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    z-index: 10001;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(17, 24, 39, 0.10);
    max-height: 180px;
    overflow-y: auto;
}

.font-autocomplete-item {
    padding: 6px 10px;
    cursor: pointer;
    font-size: 0.84rem;
    line-height: 1.4;
}

.font-autocomplete-status {
    padding: 6px 10px;
    color: var(--kta-muted, #6b7280);
    font-size: 0.78rem;
    line-height: 1.35;
    cursor: default;
}

.font-autocomplete-item:hover,
.font-autocomplete-item.is-focused {
    background: rgba(0, 145, 234, 0.08);
    color: var(--kta-primary, #0091ea);
}

/* 최근 사용 태그 */
.font-recent-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.font-recent-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 20px;
    background: var(--kta-surface-muted, #f8f9fa);
    color: var(--kta-text, #111827);
    font-size: 0.76rem;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}

.font-recent-tag:hover {
    background: rgba(0, 145, 234, 0.08);
    border-color: rgba(0, 145, 234, 0.30);
}

.font-recent-tag.active {
    background: rgba(0, 145, 234, 0.10);
    border-color: rgba(0, 145, 234, 0.45);
    color: var(--kta-primary, #0091ea);
}

.font-tag-remove {
    color: #9ca3af;
    font-size: 0.7rem;
    line-height: 1;
    padding: 0 1px;
}

.font-tag-remove:hover { color: #6b7280; }

/* 글자 크기 컨트롤 */
.font-size-controls {
    display: flex;
    align-items: center;
    gap: 6px;
}

.font-size-step-btn {
    width: 32px;
    min-width: 32px;
    padding-right: 0 !important;
    padding-left: 0 !important;
    font-weight: 700;
}

.font-size-reset-btn {
    min-width: 54px;
}

.font-size-current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 31px;
    padding: 0 8px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 6px;
    background: var(--kta-surface-muted, #f8fafc);
    color: var(--kta-text, #111827);
    font-size: 0.82rem;
    font-weight: 650;
}

.font-size-reset-btn.active {
    background-color: var(--kta-primary, #0091ea) !important;
    border-color: var(--kta-primary, #0091ea) !important;
    color: #fff !important;
}

/* ── Google Patents 레이아웃 (메인 패널) ── */
#scrap .patent-detail { font-family: inherit; padding: 0; }
#scrap .gp-title-section { padding: 6px 0 12px; border-bottom: 1px solid #e0e0e0; margin-bottom: 14px; }
#scrap .gp-title-section:has(.gp-patent-title:empty) { display: none; }
#scrap .gp-patent-title { font-family: inherit; font-size: 1.4em; font-weight: 400; color: #202124; line-height: 1.4; margin: 0; }
#scrap .gp-top-grid { display: grid; grid-template-columns: minmax(0, 1.58fr) minmax(280px, 1fr); grid-template-areas: "main meta"; gap: 20px; align-items: start; margin-bottom: 20px; }
#scrap .gp-top-grid.is-meta-empty { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main"; }
#scrap .gp-main-area { grid-area: main; min-width: 0; }
#scrap .gp-sidebar-area { grid-area: meta; min-width: 0; }
#scrap .gp-card { background: #fff; border: 1px solid #dadce0; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
#scrap .gp-card:last-child { margin-bottom: 0; }
#scrap .gp-section-header { font-family: inherit; font-size: 0.875em; font-weight: 700; color: #202124; border-bottom: 1px solid #e0e0e0; padding-bottom: 8px; margin-top: 0; margin-bottom: 12px; display: flex; justify-content: space-between; align-items: center; }
#scrap .abstract-translation-note { margin-left: auto; color: #9aa0a6; font-size: 0.928em; font-weight: 400; }
#scrap .gp-body-text { font-family: inherit; font-size: 0.875em; line-height: 1.65; color: #202124; }
#scrap .gp-pub-card { display: none; padding: 18px 20px 16px; border-radius: 8px 8px 0 0; background: var(--kta-primary, #1a73e8); color: #fff; }
#scrap .gp-sidebar-area.has-visible-info-card .gp-pub-card { display: block; }
#scrap .gp-pub-number { font-size: 1.125em; font-weight: 700; margin: 0 0 4px; }
#scrap .gp-pub-country { font-size: 0.875em; opacity: 0.9; margin: 0; }
#scrap .gp-action-bar { display: flex; gap: 8px; flex-wrap: wrap; }
#scrap .gp-action-btn { display: inline-flex; align-items: center; gap: 5px; padding: 5px 11px; background: rgba(255,255,255,0.15); color: #fff; border: 1px solid rgba(255,255,255,0.5); border-radius: 4px; font-size: 0.8125em; cursor: pointer; text-decoration: none; white-space: nowrap; }
#scrap .gp-action-btn:hover, #scrap .gp-action-btn:focus { background: rgba(255,255,255,0.28); color: #fff; text-decoration: none; }
#scrap .gp-info-card { background: #fff; border: 1px solid #dadce0; border-radius: 8px; }
#scrap .gp-sidebar-area.has-visible-info-card .gp-info-card { border-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
#scrap .gp-info-row { padding: 10px 16px; border-bottom: 1px solid #f1f3f4; }
#scrap .gp-info-row:last-child { border-bottom: none; }
#scrap .gp-info-label { display: block; font-size: var(--scrap-user-font-size, 1em); font-weight: 600; color: #5f6368; margin-bottom: 3px; }
#scrap .gp-info-value { font-size: var(--scrap-user-font-size, 1em); color: #202124; margin: 0; }
#scrap .gp-hidden { display: none; }
#scrap .patent-body-section-hidden { display: none !important; }
#scrap .gp-info-icon { cursor: help; color: #5f6368; text-decoration: none; border: none; font-style: normal; }
#scrap .gp-inventor-name { color: inherit; }
#scrap .gp-event-row { display: grid; grid-template-columns: 90px 1fr; gap: 6px; padding: 4px 0; font-size: var(--scrap-user-font-size, 1em); border-bottom: 1px solid #f8f9fa; }
#scrap .gp-event-row:last-child { border-bottom: none; }
#scrap .gp-event-date { color: #202124; font-weight: 600; }
#scrap .gp-event-desc { color: #3c4043; display: flex; align-items: baseline; gap: 6px; min-width: 0; }
#scrap .gp-event-desc::before { content: '•'; color: #1a73e8; font-weight: 700; flex: 0 0 auto; }
#scrap .gp-event-row.is-status .gp-event-desc::before { color: #34a853; }
#scrap .classifications-list { font-family: inherit; font-size: 0.875em; }
#scrap .gp-classifications-box { font-family: inherit; font-size: 1em; border: 1px solid #e0e0e0; background: #fff; padding: 8px 12px; }
#scrap .gp-classification-item { position: relative; display: block; padding: 5px 0; border-bottom: none; font-size: 1em; }
#scrap .gp-classification-item:hover,
#scrap .gp-classification-item.is-popover-open { z-index: 30; }
#scrap .gp-classification-line { display: flex; align-items: baseline; gap: 8px; width: calc(100% + 12px); margin: -2px -6px; padding: 2px 6px; border: 0; background: transparent; color: #3c4043; font: inherit; text-align: left; line-height: 1.55; cursor: help; }
#scrap .gp-classification-line:hover,
#scrap .gp-classification-line:focus,
#scrap .gp-classification-item.is-popover-open .gp-classification-line { background: #e8f0fe; }
#scrap .gp-classification-line:hover .gp-cpc-code,
#scrap .gp-classification-line:focus .gp-cpc-code { text-decoration: underline; }
#scrap .gp-classification-marker { position: relative; top: -1px; width: 10px; height: 7px; flex: 0 0 10px; border-radius: 1px; background: #5f6368; }
#scrap .gp-classification-marker::before { content: ''; position: absolute; left: 1px; top: -2px; width: 5px; height: 3px; border-radius: 1px 1px 0 0; background: #5f6368; }
#scrap .gp-cpc-code { color: #1a73e8; font-weight: 500; white-space: nowrap; flex-shrink: 0; }
#scrap .gp-cpc-desc { color: #3c4043; }
#scrap .gp-classification-toggle { margin-top: 6px; padding: 0; border: 0; background: transparent; color: #9aa0a6; font: inherit; font-size: 0.928em; font-style: italic; cursor: pointer; }
#scrap .gp-classification-toggle:hover,
#scrap .gp-classification-toggle:focus { color: #5f6368; text-decoration: underline; }
#scrap .gp-classification-popover { position: absolute; left: 12px; top: calc(100% - 2px); z-index: 10000; display: none; box-sizing: border-box; width: min(596px, calc(100vw - 52px)); max-width: calc(100vw - 52px); max-height: calc(100vh - 24px); overflow: auto; overscroll-behavior: contain; padding: 0; border: 1px solid #dadce0; border-radius: 2px; background: #fff; box-shadow: 0 2px 5px rgba(60,64,67,0.28); color: #3c4043; font-family: inherit; }
#scrap .gp-classification-item.is-popover-open .gp-classification-popover { display: block; }
#scrap .gp-classification-popover-inner { display: flex; flex-direction: column; min-height: 0; }
#scrap .gp-classification-popover-title { display: flex; align-items: baseline; gap: 8px; padding: 10px 18px 11px; border-bottom: 1px solid #e0e0e0; color: #202124; font-size: 1em; line-height: 1.55; }
#scrap .gp-classification-hierarchy { flex: 1 1 auto; min-width: 0; padding: 12px 18px 14px; background: #fff; }
#scrap .gp-classification-path { display: block; padding: 0 0 12px; }
#scrap .gp-classification-path:last-child { padding-bottom: 0; }
#scrap .gp-classification-path + .gp-classification-path { padding-top: 12px; }
#scrap .gp-classification-path-label { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; color: #3c4043; font-size: 0.928em; }
#scrap .gp-classification-path-label::after { content: ''; flex: 1 1 auto; border-top: 1px solid #dadce0; }
#scrap .gp-classification-path-items { min-width: 0; }
#scrap .gp-classification-path-item { margin-bottom: 6px; font-size: 0.928em; line-height: 1.45; }
#scrap .gp-images-header { justify-content: flex-start; white-space: nowrap; }
#scrap .images-strip { display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden; padding: 6px 4px 8px; background: #f1f3f4; scrollbar-color: #cbd5e1 transparent; scrollbar-width: thin; }
#scrap .images-strip img { height: 92px; width: auto; border: 1px solid #dadce0; border-radius: 0; cursor: pointer; flex-shrink: 0; background: #fff; object-fit: contain; }
#scrap .images-strip img:hover { border-color: #94a3b8; }
#scrap .gp-image-slot { height: 92px; min-width: 116px; max-width: 180px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; padding: 0; border: 1px solid #dadce0; border-radius: 0; background: #fff; color: #6b7280; cursor: pointer; overflow: hidden; }
#scrap .gp-image-slot:hover { border-color: #94a3b8; }
#scrap .gp-image-slot img { height: 100%; width: auto; max-width: 180px; border: 0; background: #fff; object-fit: contain; }
#scrap .gp-image-slot.is-loading { border-style: dashed; background: #f8f9fa; }
#scrap .gp-image-loading { padding: 0 10px; font-size: 0.75em; color: #6b7280; white-space: nowrap; }
.drawing-thumbs { scrollbar-color: #cbd5e1 transparent; scrollbar-width: thin; }
#scrap .gp-link-list { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
#scrap .gp-link-item { color: #1a73e8; font-size: inherit; text-decoration: none; }
#scrap .gp-link-item:hover { text-decoration: underline; }
#scrap .gp-link-sep { color: #5f6368; font-size: inherit; }
#scrap .gp-bottom-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "description claims"; gap: 16px; }
#scrap .description-section { grid-area: description; min-width: 0; }
#scrap .claims-section { grid-area: claims; min-width: 0; }
#scrap .gp-bottom-grid.is-single-column { grid-template-columns: minmax(0, 1fr); }
#scrap .gp-bottom-grid.is-claims-only { grid-template-areas: "claims"; }
#scrap .gp-bottom-grid.is-description-only { grid-template-areas: "description"; }
#scrap .gp-bottom-grid.is-empty { display: none; }
#scrap .gp-hide-dep-btn { font: inherit; font-size: 0.75em; padding: 2px 8px; background: none; border: 1px solid #dadce0; border-radius: 4px; color: #5f6368; cursor: pointer; font-weight: 400; }
#scrap .gp-hide-dep-btn:hover { background: #f8f9fa; }
#scrap .claims-content { overflow-wrap: anywhere; word-break: break-word; }
#scrap .claims-content ol.claims { margin: 0; padding-left: 1.4rem; }
#scrap .claims-content ol.claims > li, #scrap .claims-content ul.claims > li { list-style: none; }
#scrap .claims-content li.hidden-dependent { display: none; }
#scrap .claims-content .claim-item { display: block; margin-bottom: 0.5em; }
#scrap .claims-content .claim-item[paragraph_index]::before { content: attr(paragraph_index) ". "; font-weight: 600; margin-right: 0.35rem; }
#scrap .claims-content > .claim-dependent,
#scrap .claims-content li.claim-dependent { margin-left: 1.5rem; }
#scrap .claims-content li .claim-dependent { margin-left: 0; }
#scrap .claims-content .claim-dependent.hidden-dependent { display: none; }
#scrap .claims-content .claim-text { display: block; min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
#scrap .claims-content .claim-text span { display: inline; }
#scrap .claims-content .claim-item > div,
#scrap .claims-content .claim-item > span { max-width: 100%; }
#scrap .claims-content .claim-meta,
.patent-detail .claims-content .claim-meta { font-size: 0.78em; color: #5f6368; margin-bottom: 2px; }
#scrap .claims-content .claim-type-label,
.patent-detail .claims-content .claim-type-label { font-weight: 600; color: #3c4043; }
#scrap .claims-content .claim-parent-ref,
.patent-detail .claims-content .claim-parent-ref { margin-left: 6px; color: #5f6368; }
#scrap .claims-content .claim-deleted .claim-text,
.patent-detail .claims-content .claim-deleted .claim-text { color: #6c757d; text-decoration: line-through; }
#scrap .claims-content .claim-confidence-low,
.patent-detail .claims-content .claim-confidence-low { outline: 1px dashed #f29900; outline-offset: 2px; }
#scrap .description-content p,
#scrap .description-content [paragraph_index] { margin-top: 0.6em !important; margin-bottom: 0.6em !important; display: block; }
#scrap .description-content { overflow-wrap: anywhere; word-break: break-word; }
#scrap .description-content img, #scrap .description-content table, #scrap .description-content video, #scrap .description-content iframe { max-width: 100%; height: auto; }
#scrap .gp-drawing-ref { color: #0d6efd; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
#scrap .gp-drawing-ref:hover, #scrap .gp-drawing-ref:focus { color: #0a58ca; outline: none; }
#scrap .gp-drawing-body-image { cursor: pointer; }
#scrap .gp-drawing-body-image:hover, #scrap .gp-drawing-body-image:focus { outline: 2px solid #6ea8fe; outline-offset: 2px; }
#scrap .description-content pre, #scrap .description-content code { white-space: pre-wrap; word-break: break-word; }
#scrap .abstract-content span[paragraph_index] { display: block; margin-bottom: 0.5em; }
#scrap .para-num-line { color: #666; font-size: 0.8em; margin-top: 0.6em; margin-bottom: 0.2em; }
#scrap .family-applications-content { font-size: var(--scrap-user-font-size, 1em); }
#scrap .gp-family-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
#scrap .gp-family-year-group { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; }
#scrap .gp-family-year { color: #5f6368; font-weight: 500; }
#scrap .gp-concept-tag { display: inline-block; background: #e8f0fe; color: #1a73e8; border: 1px solid #c5d5f5; border-radius: 16px; padding: 3px 10px; font-size: 0.8125em; margin: 3px 4px 3px 0; }
#scrap .gp-table { width: 100%; border-collapse: collapse; font-size: 0.8125em; }
#scrap .gp-table th { font-weight: 600; color: #5f6368; padding: 6px 8px; border-bottom: 2px solid #e0e0e0; text-align: left; }
#scrap .gp-table td { padding: 5px 8px; border-bottom: 1px solid #f1f3f4; color: #202124; vertical-align: top; }
#scrap .gp-table tr:last-child td { border-bottom: none; }
#scrap .gp-table a { color: #1a73e8; text-decoration: none; }
#scrap .gp-table a:hover { text-decoration: underline; }

/* Google Patents body theme bridge */
#scrap {
    --scrap-user-font-size: 1rem;
    background: var(--kta-bg, #fff);
    color: var(--kta-text, #202124);
}

#scrap .patent-detail,
#scrap .gp-card,
#scrap .gp-info-card,
#scrap .gp-classifications-box,
#scrap .gp-classification-popover,
#scrap .gp-classification-hierarchy {
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #202124);
    border-color: var(--kta-border, #dadce0);
}

#scrap .gp-title-section,
#scrap .gp-section-header,
#scrap .gp-info-row,
#scrap .gp-event-row,
#scrap .gp-classification-popover-title,
#scrap .gp-classification-path-label::after,
#scrap .gp-table th,
#scrap .gp-table td {
    border-color: var(--kta-border, #e0e0e0);
}

#scrap .gp-patent-title,
#scrap .gp-section-header,
#scrap .gp-body-text,
#scrap .gp-info-value,
#scrap .gp-event-date,
#scrap .gp-event-desc,
#scrap .gp-classification-line,
#scrap .gp-cpc-desc,
#scrap .gp-classification-popover-title,
#scrap .gp-classification-path-label,
#scrap .gp-classification-path-item,
#scrap .gp-table td,
#scrap .claims-content,
#scrap .description-content {
    color: var(--kta-text, #202124);
}

#scrap .abstract-translation-note,
#scrap .gp-info-label,
#scrap .gp-info-icon,
#scrap .gp-classification-toggle,
#scrap .gp-link-sep,
#scrap .gp-hide-dep-btn,
#scrap .gp-image-loading,
#scrap .gp-family-year,
#scrap .gp-table th,
#scrap .para-num-line {
    color: var(--kta-muted, #5f6368);
}

#scrap .gp-cpc-code,
#scrap .gp-link-item,
#scrap .gp-drawing-ref,
#scrap .gp-table a {
    color: var(--kta-primary, #1a73e8);
}

#scrap .gp-drawing-ref:hover,
#scrap .gp-drawing-ref:focus,
#scrap .gp-link-item:hover,
#scrap .gp-table a:hover {
    color: var(--kta-primary-dark, #0a58ca);
}

#scrap .gp-classification-line:hover,
#scrap .gp-classification-line:focus,
#scrap .gp-classification-item.is-popover-open .gp-classification-line {
    background: rgba(var(--kta-primary-rgb, 26, 115, 232), 0.12);
}

#scrap .gp-classification-marker,
#scrap .gp-classification-marker::before {
    background: var(--kta-muted, #5f6368);
}

#scrap .images-strip {
    background: var(--kta-surface-muted, #f1f3f4);
    scrollbar-color: var(--kta-border-strong, #cbd5e1) transparent;
}

#scrap .images-strip img,
#scrap .gp-image-slot,
#scrap .gp-image-slot img {
    border-color: var(--kta-border, #dadce0);
    background: var(--kta-surface-raised, #fff);
    color: var(--kta-muted, #6b7280);
}

#scrap .images-strip img:hover,
#scrap .gp-image-slot:hover {
    border-color: var(--kta-border-strong, #94a3b8);
}

#scrap .gp-image-slot.is-loading,
#scrap .gp-hide-dep-btn:hover {
    background: var(--kta-surface-muted, #f8f9fa);
}

#scrap .gp-hide-dep-btn {
    border-color: var(--kta-border, #dadce0);
    background: transparent;
}

#scrap .gp-concept-tag {
    border-color: rgba(var(--kta-primary-rgb, 26, 115, 232), 0.28);
    background: rgba(var(--kta-primary-rgb, 26, 115, 232), 0.12);
    color: var(--kta-primary, #1a73e8);
}

@container (max-width: 720px) {
    #scrap .gp-top-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "meta"
            "main";
    }

    #scrap .gp-bottom-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "claims"
            "description";
    }
}

@media (max-width: 720px) {
    #scrap .gp-top-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "meta"
            "main";
    }

    #scrap .gp-classification-popover-inner {
        min-height: 0;
    }

    #scrap .gp-classification-hierarchy {
        padding-right: 14px;
        padding-left: 14px;
        border-top: 0;
        border-left: 0;
    }

    #scrap .gp-bottom-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "claims"
            "description";
    }
}

#pdf-container {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

#pdf-viewer {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    overflow: hidden;
}

#request-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
    font-family: var(--kta-font-family, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
    font-size: 13px;
    line-height: 1.4;
}

#request-panel * {
    font-family: inherit;
}

.request-panel-shell {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.request-panel-tabs {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
    min-height: 36px;
    margin-top: 0;
    padding: 0 8px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
    background: var(--kta-surface, #fff);
    overflow-x: auto;
    overflow-y: hidden;
}

.request-panel-tabs.is-auto-hidden,
#request-panel-list.panel-auto-hide-bar.is-auto-hidden {
    max-height: none !important;
    min-height: 36px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
}

.request-panel-tabs.panel-auto-hide-bar {
    margin-top: 0;
}

#request-panel-list.panel-auto-hide-bar.is-auto-hidden {
    max-height: 4px !important;
    min-height: 4px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    opacity: 0;
    pointer-events: auto !important;
    transform: translateY(-2px);
}

.request-document-tab {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    max-width: 220px;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 6px;
    background: #f1f3f5;
    color: var(--kta-muted, #6b7280);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
}

.request-document-tab:hover,
.request-document-tab:focus,
.request-document-tab:active,
.request-document-tab:visited {
    text-decoration: none;
}

.request-document-tab span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.request-document-tab.active,
.request-document-tab.is-active,
.request-document-tab[aria-selected="true"] {
    border-color: var(--kta-primary, #0d6efd);
    background: var(--kta-primary, #0d6efd);
    color: #fff;
}

.request-panel-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    height: auto;
    margin-top: 4px;
    padding: 0;
    overflow: hidden;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
}

.request-panel-shell.is-auto-hide-bar-hidden .request-panel-body {
    margin-top: 0;
}

.request-panel-body--preview-only .request-panel-preview-pane {
    flex-basis: 100%;
}

.request-panel-body--preview-only .request-panel-analysis {
    display: none !important;
}

.request-panel-list {
    display: none;
}

.request-panel-preview {
    display: block;
    width: 100%;
    min-height: 0;
    height: 100%;
    border: 0;
    border-radius: 0;
    background: var(--kta-surface, #fff);
    color: var(--kta-text, #111827);
}

.request-panel-preview-pane {
    position: relative;
    flex: 1 1 58%;
    min-height: 0;
    overflow: hidden;
    background: #eef1f5;
}

.request-panel-analysis {
    flex: 0 0 42%;
    min-height: 168px;
    max-height: 46%;
    overflow: auto;
    border-top: 1px solid var(--kta-border, #e5e7eb);
    background: var(--kta-surface, #fff);
    transition:
        flex-basis 0.22s ease,
        min-height 0.22s ease,
        max-height 0.22s ease,
        opacity 0.18s ease;
}

.request-panel-analysis--collapsed {
    flex-basis: 46px;
    min-height: 46px;
    max-height: 46px;
    overflow: hidden;
}

.request-panel-progress-overlay {
    position: absolute;
    inset: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(229, 231, 235, 0.82);
    backdrop-filter: blur(2px);
    pointer-events: auto;
}

.request-panel-progress-card {
    width: min(360px, 92%);
    padding: 20px 22px;
    border: 1px solid rgba(var(--kta-primary-rgb, 13, 110, 253), 0.18);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
    text-align: center;
}

.request-panel-progress-ai {
    width: 42px;
    height: 42px;
    object-fit: contain;
    margin-bottom: 10px;
}

.request-panel-progress-title {
    font-weight: 700;
    color: var(--kta-text, #111827);
}

.request-panel-progress-meta {
    margin-top: 4px;
    color: var(--kta-muted, #6b7280);
    font-size: 0.82rem;
    word-break: break-word;
}

.request-panel-progress-track {
    height: 7px;
    margin-top: 14px;
    overflow: hidden;
    border-radius: 999px;
    background: #e5e7eb;
}

.request-panel-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: var(--kta-primary, #0d6efd);
    transition: width 0.22s ease;
}

.request-analysis-empty {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 18px;
    color: var(--kta-muted, #6b7280);
    text-align: center;
}

.request-analysis-content {
    padding: 14px 16px 16px;
}

.request-analysis-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.request-analysis-heading {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 8px;
}

.request-analysis-heading-icon {
    flex: 0 0 auto;
    color: #7c3aed;
    font-size: 0.95rem;
}

.request-analysis-title-wrap {
    min-width: 0;
}

.request-analysis-actions {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 6px;
}

.request-analysis-apply-btn,
.request-analysis-record-add-btn,
.request-analysis-toggle {
    white-space: nowrap;
}

.request-analysis-title {
    font-weight: 700;
    color: var(--kta-text, #111827);
    line-height: 1.25;
}

.request-analysis-body {
    max-height: 900px;
    overflow: hidden;
    opacity: 1;
    transform: translateY(0);
    transition:
        max-height 0.22s ease,
        opacity 0.18s ease,
        transform 0.22s ease;
}

.request-panel-analysis--collapsed .request-analysis-content {
    padding-top: 9px;
    padding-bottom: 9px;
}

.request-panel-analysis--collapsed .request-analysis-header {
    margin-bottom: 0;
}

.request-panel-analysis--collapsed .request-analysis-body {
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
}

.request-analysis-section {
    margin-top: 12px;
}

.request-analysis-section-title {
    margin-bottom: 6px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--kta-muted, #6b7280);
}

.request-analysis-section-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 31px;
    margin-bottom: 6px;
}

.request-analysis-section-title-row .request-analysis-section-title {
    min-width: 0;
    margin-bottom: 0;
}

.request-analysis-section-title-row .btn {
    flex: 0 0 auto;
}

.request-analysis-alert {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 10px;
    border: 1px solid rgba(245, 158, 11, 0.34);
    border-radius: 8px;
    background: rgba(245, 158, 11, 0.09);
    color: #92400e;
    font-size: 0.82rem;
}

.request-analysis-alert strong {
    margin-left: auto;
    white-space: nowrap;
}

.request-analysis-alert--info {
    border-color: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.24);
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.08);
    color: var(--kta-primary, #0d6efd);
}

.request-analysis-summary {
    padding: 10px 11px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 8px;
    background: #f8fafc;
    white-space: pre-wrap;
}

.request-analysis-search-expression {
    padding: 10px 11px;
    border: 1px solid rgba(var(--kta-primary-rgb, 13, 110, 253), 0.22);
    border-radius: 8px;
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.06);
    color: var(--kta-text, #111827);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.78rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

.request-analysis-search-expression.is-empty {
    border-color: var(--kta-border, #e5e7eb);
    background: #f8fafc;
    color: var(--kta-muted, #6b7280);
    font-family: inherit;
}

.request-analysis-keywords,
.request-analysis-candidates {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.request-analysis-keyword,
.request-analysis-candidate {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    padding: 5px 8px;
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 6px;
    background: #f8fafc;
    font-size: 0.8rem;
}

.request-analysis-keyword span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.request-analysis-candidate {
    border-color: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.22);
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.08);
    color: var(--kta-primary, #0d6efd);
    font-weight: 700;
}

.request-analysis-items {
    display: grid;
    gap: 8px;
}

.request-analysis-item {
    border: 1px solid var(--kta-border, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.request-analysis-item--failed {
    border-color: rgba(220, 53, 69, 0.28);
}

.request-analysis-item--running,
.request-analysis-item--queued {
    border-color: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.24);
}

.request-analysis-item-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 9px 10px;
    border-bottom: 1px solid var(--kta-border, #e5e7eb);
}

.request-analysis-item-title {
    min-width: 0;
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--kta-text, #111827);
}

.request-analysis-item-status {
    flex: 0 0 auto;
    padding: 2px 7px;
    border-radius: 999px;
    background: #f3f4f6;
    color: var(--kta-muted, #6b7280);
    font-size: 0.72rem;
    font-weight: 700;
}

.request-analysis-item-status--succeeded,
.request-analysis-item-status--success,
.request-analysis-item-status--success_repaired {
    background: rgba(25, 135, 84, 0.12);
    color: #146c43;
}

.request-analysis-item-status--failed,
.request-analysis-item-status--failed_internal,
.request-analysis-item-status--failed_visible {
    background: rgba(220, 53, 69, 0.12);
    color: #b02a37;
}

.request-analysis-item-status--running,
.request-analysis-item-status--queued,
.request-analysis-item-status--pending,
.request-analysis-item-status--validating,
.request-analysis-item-status--repairing,
.request-analysis-item-status--retrying {
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.1);
    color: var(--kta-primary, #0d6efd);
}

.request-analysis-item-body {
    padding: 10px;
    font-size: 0.82rem;
}

.request-analysis-item-summary {
    white-space: pre-wrap;
}

.request-analysis-item-muted {
    color: var(--kta-muted, #6b7280);
}

.request-analysis-item-error {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #b02a37;
}

.request-analysis-item-error--muted {
    color: var(--kta-muted, #6b7280);
}

.request-analysis-item-error .btn {
    flex: 0 0 auto;
}

.request-analysis-hidden-failures {
    margin-top: 8px;
    border: 1px dashed rgba(107, 114, 128, 0.35);
    border-radius: 8px;
    background: #f8fafc;
}

.request-analysis-hidden-failures summary {
    cursor: pointer;
    padding: 9px 10px;
    color: var(--kta-muted, #6b7280);
    font-size: 0.8rem;
    font-weight: 700;
}

.request-analysis-items--hidden {
    padding: 0 10px 10px;
}

.request-analysis-item-list {
    margin: 7px 0 0;
    padding-left: 18px;
}

.request-analysis-item-keywords {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 8px;
}

.request-analysis-item-keywords span {
    padding: 2px 6px;
    border-radius: 999px;
    background: #f3f4f6;
    color: var(--kta-muted, #6b7280);
    font-size: 0.74rem;
}

.document-ai-review-form {
    display: grid;
    gap: 6px;
}

.document-ai-review-textarea {
    min-height: 180px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.82rem;
    line-height: 1.45;
    resize: vertical;
    white-space: pre-wrap;
}

.is-ai-suggested-record {
    --common-row-bg: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.08);
}

#viewpoint-manage-table tbody tr.is-ai-suggested-record > td {
    background: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.08) !important;
}

#viewpoint-manage-table tbody tr.is-ai-suggested-record .settings-inline-input {
    border-color: rgba(var(--kta-primary-rgb, 13, 110, 253), 0.32);
}

.search-db-panel,
.search-db-panel-shell {
    min-height: 0;
}

.search-db-panel-shell {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.search-db-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--kta-border-color, #dee2e6);
}

.search-db-panel-title {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 8px;
    font-weight: 600;
}

.search-db-panel-title span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.search-db-panel-actions {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    gap: 6px;
}

.search-db-panel-body {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    padding: 0;
    overflow: hidden;
}

.search-db-frame {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #fff;
}

.search-db-fallback {
    position: absolute;
    right: 16px;
    bottom: 16px;
    left: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(13, 110, 253, 0.24);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

.search-db-fallback-message {
    min-width: 0;
    color: #344054;
    font-size: 0.88rem;
}

[data-app-theme="dark"] .search-db-frame {
    background: #fff;
}

[data-app-theme="dark"] .search-db-fallback {
    border-color: rgba(132, 183, 255, 0.34);
    background: rgba(24, 28, 34, 0.94);
}

[data-app-theme="dark"] .search-db-fallback-message {
    color: #e5e7eb;
}

@media (max-width: 640px) {
    .search-db-panel-header,
    .search-db-fallback {
        align-items: stretch;
        flex-direction: column;
    }

    .search-db-panel-actions {
        width: 100%;
    }

    .search-db-panel-actions .btn,
    .search-db-fallback .btn {
        justify-content: center;
        width: 100%;
    }
}

@media (max-width: 980px) {
    .project-keyword-panel-layout {
        grid-template-columns: 1fr;
    }
}
