.rg-color-dialog {
    position: absolute;
    z-index: 10001;
    width: 320px;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 14px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18), 0 0 1px rgba(0, 0, 0, 0.1);
    padding: 16px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 13px;
    color: #111827;
    user-select: none;
}

/* SV (saturation × value) area */
.rg-color-dialog__sv {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    background-color: #ff0000;
    background-image:
        linear-gradient(to top, #000, transparent),
        linear-gradient(to right, #fff, transparent);
    cursor: crosshair;
    overflow: hidden;
}

.rg-color-dialog__sv-cursor {
    position: absolute;
    width: 14px;
    height: 14px;
    margin: -7px 0 0 -7px;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3);
    pointer-events: none;
}

/* controls row: preview + eyedropper + hue slider */
.rg-color-dialog__controls {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
}

.rg-color-dialog__preview {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.1);
    flex: 0 0 auto;
}

.rg-color-dialog__eyedropper {
    width: 32px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    color: #374151;
    cursor: pointer;
    padding: 0;
    flex: 0 0 auto;
}

.rg-color-dialog__eyedropper:hover:not(:disabled) {
    background: #f3f4f6;
}

.rg-color-dialog__eyedropper:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.rg-color-dialog__hue {
    position: relative;
    flex: 1 1 auto;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right,
        #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%,
        #0000ff 67%, #ff00ff 83%, #ff0000 100%);
    cursor: pointer;
}

.rg-color-dialog__hue-thumb {
    position: absolute;
    top: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3);
    pointer-events: none;
}

/* alpha slider */
.rg-color-dialog__alpha {
    position: relative;
    flex: 1 1 auto;
    height: 12px;
    border-radius: 6px;
    cursor: pointer;
    /* checkered background to show transparency */
    background-color: #fff;
    background-image:
        linear-gradient(45deg, #ccc 25%, transparent 25%),
        linear-gradient(-45deg, #ccc 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #ccc 75%),
        linear-gradient(-45deg, transparent 75%, #ccc 75%);
    background-size: 8px 8px;
    background-position: 0 0, 0 4px, 4px -4px, -4px 0;
    /* thumb이 좌우 가장자리에서 잘리지 않도록 overflow visible */
}

.rg-color-dialog__alpha-track {
    position: absolute;
    inset: 0;
    border-radius: 6px;
}

.rg-color-dialog__alpha-thumb {
    position: absolute;
    top: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3);
    pointer-events: none;
}

/* inputs */
.rg-color-dialog__inputs {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 8px;
    margin-top: 14px;
}

.rg-color-dialog__inputs--alpha {
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
}

/* alpha value (footer) */
.rg-color-dialog__alpha-value {
    margin-right: auto;
    padding: 4px 8px;
    font-size: 12px;
    color: #374151;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    user-select: none;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.rg-color-dialog__alpha-value:hover {
    background: #f3f4f6;
    border-color: #e5e7eb;
}

.rg-color-dialog__alpha-value:focus {
    outline: none;
    background: #f3f4f6;
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.rg-color-dialog__alpha-value-input {
    margin-right: auto;
    width: 60px;
    padding: 4px 8px;
    border: 1px solid #2563eb;
    border-radius: 6px;
    font-size: 12px;
    color: #111827;
    background: #fff;
    box-sizing: border-box;
    outline: none;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.rg-color-dialog__field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rg-color-dialog__field-label {
    font-size: 11px;
    color: #6b7280;
}

.rg-color-dialog__field-input {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #111827;
    background: #fff;
    box-sizing: border-box;
    outline: none;
    transition: border-color 80ms, box-shadow 80ms;
}

.rg-color-dialog__field-input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.rg-color-dialog__hex .rg-color-dialog__field-input {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* footer */
.rg-color-dialog__footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}

.rg-color-dialog__btn {
    min-width: 64px;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 80ms, border-color 80ms;
}

.rg-color-dialog__btn--cancel {
    background: #fff;
    color: #374151;
    border: 1px solid #d1d5db;
}

.rg-color-dialog__btn--cancel:hover {
    background: #f9fafb;
}

.rg-color-dialog__btn--ok {
    background: #2563eb;
    color: #fff;
    border: 1px solid #2563eb;
}

.rg-color-dialog__btn--ok:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;
}
.rg-color-selector {
    position: absolute;
    z-index: 10000;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.1);
    padding: 14px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 13px;
    color: #111827;
    user-select: none;
}

.rg-color-selector__palette {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 5px;
}

.rg-color-selector__section {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.rg-color-selector__section-label {
    color: #374151;
    font-size: 12px;
    margin-bottom: 4px;
}

.rg-color-selector__row {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 5px;
    min-height: 17px;
}

.rg-color-selector__swatch {
    width: 17px;
    height: 17px;
    border-radius: 50%;
    border: none;
    padding: 0;
    cursor: pointer;
    background-clip: padding-box;
    /* 밝은 색에만 경계 표시(내부 그림자)을 기본 소주 */
    box-shadow: none;
    transition: transform 80ms ease-out, box-shadow 80ms ease-out;
}

.rg-color-selector__swatch--light {
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
}

.rg-color-selector__swatch:hover {
    transform: scale(1.15);
}

.rg-color-selector__swatch.selected {
    box-shadow: 0 0 0 1.5px #fff, 0 0 0 3px #2563eb;
}

.rg-color-selector__swatch--light.selected {
    /* 밝은 색 선택 시 내부 경계 + 외부 링 겹침 */
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18),
                0 0 0 1.5px #fff,
                0 0 0 3px #2563eb;
}

.rg-color-selector__actions {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.rg-color-selector__alpha {
    margin-left: auto;
    padding: 3px 8px;
    font-size: 12px;
    color: #374151;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    user-select: none;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.rg-color-selector__alpha:hover {
    background: #f3f4f6;
    border-color: #e5e7eb;
}

.rg-color-selector__alpha:focus {
    outline: none;
    background: #f3f4f6;
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.rg-color-selector__icon-btn {
    width: 17px;
    height: 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.25);
    border-radius: 50%;
    color: #374151;
    cursor: pointer;
    padding: 0;
    transition: background 80ms, border-color 80ms;
}

.rg-color-selector__icon-btn:hover:not(:disabled) {
    background: #f3f4f6;
    border-color: #9ca3af;
}

.rg-color-selector__icon-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* 현재 선택색 표시 dot — 클릭 시 편집 다이얼로그 열기 */
.rg-color-selector__current {
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #e5e7eb;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
    flex: 0 0 auto;
    margin-right: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    cursor: pointer;
    transition: transform 80ms, box-shadow 80ms;
}

.rg-color-selector__current:hover {
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18), 0 0 0 2px rgba(37, 99, 235, 0.25);
}

.rg-color-selector__current:focus {
    outline: none;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18), 0 0 0 2px rgba(37, 99, 235, 0.5);
}

.rg-color-selector__current svg {
    width: 11px;
    height: 11px;
}

/* 스포이드: 테두리 없는 평평한 아이콘 버튼, 조금 더 크게 */
.rg-color-selector__icon-btn--eyedropper {
    width: 26px;
    height: 26px;
    margin-left: -4px;
    background: transparent;
    border-color: transparent;
    color: #374151;
}

.rg-color-selector__icon-btn--eyedropper:hover:not(:disabled) {
    background: #f3f4f6;
    border-color: transparent;
}

/* "없음" 버튼: actions 영역에 배치되는 작은 pill 형태 */
.rg-color-selector__none {
    height: 20px;
    padding: 0 8px;
    font-size: 11px;
    line-height: 1;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    color: #374151;
    cursor: pointer;
    margin-left: 2px;
}
.rg-color-selector__none:hover {
    background: #f3f4f6;
    border-color: #9ca3af;
}
.rg-dialog {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 400px;
    min-width: 300px;
    min-height: 200px;
    background-color: #fff;
    border: 1px solid #99c;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.32);
    border-radius: 10px;
    overflow: hidden;
    z-index: 1000;
    font-family: Arial, sans-serif;
    line-height: normal;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    outline: none;
    animation: rg-dialog-in 140ms ease-out;
}
.rg-dialog-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.1);
    z-index: 999;
    animation: rg-dialog-overlay-in 140ms ease-out;
}
@keyframes rg-dialog-overlay-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes rg-dialog-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
.rg-dialog-title {
    display: flex;
    align-items: center;
    padding: 16px 16px 10px;
    font-size: 16px;
    border-bottom: 1px solid #f4f4f4;
    user-select: none;
    cursor: move;
    color: #333;
    background-color: #f9f9f9;
}
.rg-dialog-title__text {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rg-dialog-title__close {
    flex: 0 0 auto;
    margin-left: 8px;
    width: 24px;
    height: 24px;
    padding: 0;
    border: none;
    background: transparent;
    color: #71717a;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.rg-dialog-title__close:hover {
    background: #e4e4e7;
    color: #18181b;
}
.rg-dialog-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 12px 16px 12px 16px;
    font-size: 13px;
    color: #333;
    position: relative;
}
.rpivot-dialog-body-columnar {
    display: flex;
    flex-direction: column;
    gap: var(--body-columnar-gap, 8px);
}
.rg-dialog-footer {
    padding: 12px 16px 18px 16px;
    border-top: 1px solid #eee;
    text-align: right;
}
.rg-dialog-header {
    font-weight: bold;
}

/** Error message */
.rg-dialog-error {
    position: absolute;
    z-index: 10;
    min-width: 120px;
    padding: 6px 10px;
    background-color: #fff3cd;
    border: 1px solid #ffe69c;
    border-radius: 4px;
    color: #331d03;
    font-size: 13px;
    line-height: 1.4;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    pointer-events: none;
}
.rg-dialog-error::before {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    background-color: #fff3cd;
    border-left: 1px solid #ffe69c;
    border-top: 1px solid #ffe69c;
    transform: rotate(45deg);
    left: var(--rg-dialog-error-arrow, 12px);
}
.rg-dialog-error[data-pos='below']::before {
    top: -5px;
}
.rg-dialog-error[data-pos='above']::before {
    bottom: -5px;
    border-left: none;
    border-top: none;
    border-right: 1px solid #ffe69c;
    border-bottom: 1px solid #ffe69c;
}

.rg-dialog-label {
    white-space: nowrap;
    flex-shrink: 0;
}

/* Text */
.rg-dialog-text {
    white-space: pre;
}
.rg-dialog-text.rg-text-wrap {
    white-space: pre-wrap;
}
.rg-dialog-text.rg-text-box {
    white-space: pre-wrap;
    border: 1px solid #d4d4d8;
    padding: 2px 6px;
}

/* Buttons */
.rg-dialog-button {
    height: 25px;
    box-sizing: border-box;
    padding: 0 24px;
    border: 1px solid #94a3b8;
    background-color: #ffffff;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #334155;
    transition: all 0.2s;
    user-select: none;
    margin-left: 10px;
}
.rg-dialog-button:hover {
    background-color: #e8eafc;
    border-color: #cbd5e1;
    color: #0f172a;
}
.rg-dialog-inner-btn {
    height: 25px;
    box-sizing: border-box;
    padding: 0 16px;
    border: 1px solid #94a3b8;
    background-color: #ffffff;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #334155;
    transition: all 0.2s;
    user-select: none;
    white-space: nowrap;
}
.rg-dialog-inner-btn:hover {
    background-color: #e8eafc;
    border-color: #cbd5e1;
    color: #0f172a;
}
.rg-dialog-inner-btn:disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}
.rg-dialog-btn-primary {
    border-color: #3b82ff;
}
.rg-dialog-btn-primary:hover {
    border-color: #2563eb;
}

/* Resizable */
.rg-dialog-resize-handle {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 10px;
    height: 10px;
    cursor: se-resize;
    /* background: linear-gradient(135deg, transparent 50%, #99f 50%); */
    background: transparent;
    display: none;
}
.rg-dialog.resizable .rg-dialog-resize-handle {
    display: block;
}

/* Radio Group */
.rg-dialog-radio-group {
    display: flex;
    flex-direction: column;
    gap: var(--radio-gap, 4px);
}
.rg-dialog-radio-title {
    font-size: 0.9em;
    color: #374151;
    margin-bottom: 2px;
}
.rg-dialog-radio-group.inline .rg-dialog-radio-title {
    margin-bottom: 0;
    white-space: nowrap;
    font-size: 12px;
}
.rg-dialog-radio-items {
    padding-left: 12px;
    display: flex;
    flex-direction: column;
    gap: var(--radio-gap, 4px);
}
.rg-dialog-radio-row {
    display: flex;
    align-items: center;
    gap: 4px;
}
.rg-dialog-radio-label {
    cursor: pointer;
}
.rg-dialog-radio-group.inline {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px var(--radio-gap, 8px);
}
.rg-dialog-radio-group.horizontal,
.rg-dialog-radio-group.horizontal .rg-dialog-radio-items {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 4px var(--radio-gap, 16px);
    padding-left: 0;
}

.rg-dialog-check-group.inherited .rg-dialog-radio-row:not(.rg-dialog-check-inherit) {
    opacity: 0.5;
}
.rg-dialog-radio-row.disabled {
    opacity: 0.5;
}
.rg-dialog-check-inherit {
    font-style: italic;
}
.rg-dialog-select {
    min-height: 23px;
}

/* List (ul-based single-select) */
/* --rg-list-item-h: li 한 줄 높이 (padding 3px*2 + line-height 20px). height 를 항목 수로 지정할 때 사용. */
.rg-dialog-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #d4d4d8;
    border-radius: 3px;
    background: #fff;
    overflow-y: auto;
    box-sizing: border-box;
    outline: none;
}
.rg-dialog-list:hover {
    border-color: #a1a1aa;
}
.rg-dialog-list > li {
    padding: 3px 8px;
    cursor: default;
    user-select: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rg-dialog-list.disabled {
    pointer-events: none;
}
.rg-dialog-list.disabled > li {
    opacity: 0.6;
}
.rg-dialog-list > li:hover {
    background: #f0f0f0;
}
.rg-dialog-list > li.selected {
    background: Highlight;
    color: HighlightText;
}
.rg-dialog-list > li.selected:hover {
    background: Highlight;
    color: HighlightText;
    opacity: 0.9;
}
.rg-dialog-list > li.rg-dialog-list__separator {
    padding: 0;
    margin: 5px 6px;
    height: 1px;
    background: #c4c4c7;
    border: 0;
    cursor: default;
    pointer-events: none;
    overflow: hidden;
}
.rg-dialog-list > li.rg-dialog-list__separator:hover {
    background: #f0f0f0;
}

/* Reorderable list (up/down buttons per item) */
.rg-dialog-list[data-orderable="1"] > li {
    display: flex;
    align-items: center;
    gap: 4px;
    padding-right: 4px;
}
.rg-dialog-list[data-orderable="1"] > li > .rg-dialog-list__label {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
.rg-dialog-list__btn {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    padding: 0;
    margin: 0;
    border: 1px solid #c8c8c8;
    background: none;
    color: #3f3f46;
    font-size: 9px;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.rg-dialog-list__btn:hover {
    background: #e4e4e7;
    border-color: #a1a1aa;
}
.rg-dialog-list[data-orderable="1"] > li:first-child > .rg-dialog-list__btn-up,
.rg-dialog-list[data-orderable="1"] > li:last-child > .rg-dialog-list__btn-down {
    cursor: default;
    opacity: 0.3;
    pointer-events: none;
}

/* Icon picker (grid dropdown — 아이콘 그리드에서 하나 선택) */
.rg-dialog-icon-picker {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 23px;
    padding: 2px 6px;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    user-select: none;
    box-sizing: border-box;
}
.rg-dialog-icon-picker:hover { border-color: #8a8a8a; }
.rg-dialog-icon-picker:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 1px #2563eb33; }
.rg-dialog-icon-picker.disabled { pointer-events: none; opacity: 0.6; }
.rg-dialog-icon-picker__face {
    display: inline-flex;
    align-items: center;
    flex: 1;
    font-size: 12px;
    color: #555;
}
.rg-dialog-icon-picker__arrow {
    width: 0; height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid #555;
    flex-shrink: 0;
}
/* panel */
.rg-dialog-icon-picker__panel {
    position: fixed;
    z-index: 10000;
    background: #fff;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
    padding: 4px;
}
/* "없음" 행 */
.rg-dialog-icon-picker__none {
    padding: 3px 6px;
    margin-bottom: 2px;
    font-size: 12px;
    color: #555;
    cursor: pointer;
    border-radius: 2px;
    user-select: none;
}
.rg-dialog-icon-picker__none:hover { background: #f0f0f0; }
.rg-dialog-icon-picker__none.selected { background: Highlight; color: HighlightText; }
/* 그리드 */
.rg-dialog-icon-picker__grid {
    display: grid;
    gap: 1px;
}
.rg-dialog-icon-picker__cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border-radius: 2px;
    cursor: pointer;
    user-select: none;
    box-sizing: border-box;
}
.rg-dialog-icon-picker__cell:hover { background: #f0f0f0; }
.rg-dialog-icon-picker__cell.selected { background: Highlight; }
.rg-dialog-icon-picker__cell.selected:hover { opacity: 0.9; }

/* Icon select (dropdown with SVG icons per item) */
/* --rg-icon-select-item-h: 패널 항목 한 줄 높이. rowCount 로 높이 계산에 사용. */
.rg-dialog-icon-select {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 23px;
    padding: 2px 6px;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    user-select: none;
    box-sizing: border-box;
}
.rg-dialog-icon-select:hover { border-color: #8a8a8a; }
.rg-dialog-icon-select:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 1px #2563eb33; }
.rg-dialog-icon-select.disabled { pointer-events: none; opacity: 0.6; }
.rg-dialog-icon-select__face {
    display: inline-flex;
    align-items: center;
    gap: 1px;
    flex: 1;
}
.rg-dialog-icon-select__arrow {
    width: 0; height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid #555;
    flex-shrink: 0;
}
.rg-dialog-icon-select__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* mask-image 방식: backgroundColor = currentColor 로 아이콘 색 결정 */
}
/* 이전 innerHTML SVG 방식 잔재 제거 — mask-image 사용 시 svg child 없음 */

/* panel — position: fixed, appended to document.body */
.rg-dialog-icon-select__panel {
    position: fixed;
    z-index: 10000;
    background: #fff;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    padding: 2px 0;
}
.rg-dialog-icon-select__item {
    display: flex;
    align-items: center;
    gap: 1px;
    padding: 4px 8px;
    cursor: pointer;
    user-select: none;
    height: var(--rg-icon-select-item-h, 30px);
    box-sizing: border-box;
}
.rg-dialog-icon-select__item:hover { background: #f0f0f0; }
.rg-dialog-icon-select__item.selected { background: Highlight; color: HighlightText; }
.rg-dialog-icon-select__item.selected:hover { background: Highlight; opacity: 0.9; }

/* Color select (combo-style) */
.rg-dialog-color-select {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 23px;
    padding: 2px 6px;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    user-select: none;
    box-sizing: border-box;
}
.rg-dialog-color-select:hover {
    border-color: #8a8a8a;
}
.rg-dialog-color-select:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 1px #2563eb33;
}
.rg-dialog-color-select__swatch {
    flex: 1;
    align-self: stretch;
    min-width: 40px;
    margin: 2px 0;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 2px;
}
/* "없음" 상태: 흰 배경 + 회색 텍스트 */
.rg-dialog-color-select__swatch--none {
    background-color: #fff;
    color: #9ca3af;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    white-space: nowrap;
}
.rg-dialog-color-select__arrow {
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid #555;
}

/* addLine: 한 row 에 여러 input 가로 배치 */
.rg-dialog-line {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    font-size: 12px;
}
.rg-dialog-line.wrap {
    flex-wrap: wrap;
}
    
/* label 바로 뒤에 따라오는 input 은 간격을 좁힘.
   단, checkbox 뒤에 붙은 label(=trailing label) 다음 형제는 제외 — 그 형제는
   다음 항목이라 정상 gap 을 유지해야 한다. */
.rg-dialog-line > .rg-dialog-line-label:not(input[type="checkbox"] + *) + * {
    margin-left: -6px;
}
/* checkbox 처럼 input 뒤에 label 이 오는 경우도 동일하게 좁힘 */
.rg-dialog-line > input[type="checkbox"] + .rg-dialog-line-label {
    margin-left: -7px;
}
.rg-dialog-line-label {
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 12px;
}
.rg-dialog-line-spacer {
    flex: 1 1 auto;
}

/* Slider */
.rg-dialog-slider {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 23px;
    box-sizing: border-box;
}
.rg-dialog-slider__input {
    flex: 1 1 auto;
    min-width: 80px;
    margin: 0;
    cursor: pointer;
}
.rg-dialog-slider__input:focus {
    outline: 1px solid #2563eb;
    outline-offset: 2px;
}
.rg-dialog-slider__min,
.rg-dialog-slider__max,
.rg-dialog-slider__value {
    font-size: 12px;
    color: #555;
    user-select: none;
}
.rg-dialog-slider__value {
    color: #222;
    font-variant-numeric: tabular-nums;
}

/* Stepper */
.rg-dialog-stepper {
    display: inline-flex;
    align-items: stretch;
    min-height: 23px;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    background: #fff;
    box-sizing: border-box;
    overflow: hidden;
}
.rg-dialog-stepper:focus-within {
    border-color: #2563eb;
    box-shadow: 0 0 0 1px #2563eb33;
}
.rg-dialog-stepper__input {
    flex: 1 1 auto;
    width: 36px;
    min-width: 0;
    padding: 0 6px;
    border: 0;
    outline: none;
    background: transparent;
    text-align: right;
    font-variant-numeric: tabular-nums;
    appearance: textfield;
    -moz-appearance: textfield;
}
.rg-dialog-stepper__input::-webkit-outer-spin-button,
.rg-dialog-stepper__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.rg-dialog-stepper__suffix {
    display: inline-flex;
    align-items: center;
    padding: 0 6px;
    border-left: 1px solid #e6e6e6;
    background: #fafafa;
    font-size: 12px;
    color: #666;
    user-select: none;
}
.rg-dialog-stepper__btns {
    display: inline-flex;
    flex-direction: column;
    flex: 0 0 auto;
    width: 16px;
    border-left: 1px solid #d8d8d8;
}
.rg-dialog-stepper__btn {
    flex: 1 1 0;
    min-height: 0;
    padding: 0;
    border: 0;
    background: #f4f4f4;
    color: #555;
    font-size: 8px;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.rg-dialog-stepper__btn:hover {
    background: #e6e6e6;
    color: #222;
}
.rg-dialog-stepper__btn:active {
    background: #d8d8d8;
}
.rg-dialog-stepper__inc {
    border-bottom: 1px solid #d8d8d8;
}

/* Separator */
.rg-dialog-separator {
    height: 1px;
    margin: 5px -3px;
    background: #e2e2e2;
    border: 0;
}
.rg-dialog-separator--titled {
    display: flex;
    align-items: center;
    height: auto;
    background: transparent;
}
.rg-dialog-separator--titled::before,
.rg-dialog-separator--titled::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: #e2e2e2;
}
.rg-dialog-separator--titled::before { flex: 0 0 2px; }
.rg-dialog-separator__label {
    /* font-size: 0.95em; */
    padding-right: 6px;
    user-select: none;
    white-space: nowrap;
}
.rg-dialog-separator-row {
    padding: 0;
}

/* Row */
.rg-dialog-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.rg-dialog-row[data-dir="horz"] {
    flex-direction: row;
    align-items: center;
}
.rg-dialog-row .rg-dialog-label {
    font-size: 12px;
}
.rg-dialog-row .rg-dialog-label[data-required]::after {
    content: ' *';
    color: #c00;
    font-weight: 600;
}
.rg-dialog-row .rg-dialog-edit.required::after {
    content: ' *';
    color: #c00;
    font-weight: 600;
}
/* native input/select: 컨트롤들과 동일한 옅은 border 색 적용 */
.rg-dialog .rg-dialog-edit,
.rg-dialog .rg-dialog-select {
    border: 1px solid #d4d4d8;
    border-radius: 3px;
    background: #fff;
    box-sizing: border-box;
    padding: 1px 6px;
    color: #222;
    outline: none;
    /* 브라우저 기본 너비(size=20, ~170px)가 너무 넓어 기본을 컴팩트하게 */
    width: 8em;
    min-width: 0;
}
.rg-dialog .rg-dialog-edit:hover,
.rg-dialog .rg-dialog-select:hover {
    border-color: #a1a1aa;
}
.rg-dialog .rg-dialog-edit:focus,
.rg-dialog .rg-dialog-select:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 1px #2563eb33;
}
/* 동일한 옅은 톤으로 color-select / stepper 도 통일 */
.rg-dialog-color-select,
.rg-dialog-stepper {
    border-color: #d4d4d8;
}
.rg-dialog-color-select:hover,
.rg-dialog-stepper:hover {
    border-color: #a1a1aa;
}
/* number-edit: 스피너 숨김, 우측 정렬 */
.rg-dialog-number-edit {
    text-align: right;
    font-variant-numeric: tabular-nums;
    appearance: textfield;
    -moz-appearance: textfield;
    /* edit 보다 더 좁게 */
    width: 6em;
}
.rg-dialog-number-edit::-webkit-outer-spin-button,
.rg-dialog-number-edit::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
/* date-edit */
.rg-dialog-date-edit {
    font-variant-numeric: tabular-nums;
}
.rg-dialog-row-ex {
    gap: 6px;
    font-size: 12px;
}
.rg-dialog-row-ex .rg-dialog-tag {
    font-size: 12px;
}

/* Collapsible Group */
.rg-dialog-group {
    display: flex;
    flex-direction: column;
    padding: 6px 0;
}
.rg-dialog-group-header {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    user-select: none;
    padding-bottom: 8px;
}
.rg-dialog-group-title {
    font-size: 0.95em;
    color: #374151;
    white-space: nowrap;
}
.rg-dialog-group-line {
    flex: 1;
    border-bottom: 1px solid #e1e5eb;
    align-self: center;
}
.rg-dialog-group-arrow {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-right: 1.5px solid #6b7280;
    border-bottom: 1.5px solid #6b7280;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
    margin-bottom: 3px;
}
.rg-dialog-group.collapsed .rg-dialog-group-arrow {
    transform: rotate(-45deg);
    margin-bottom: 0;
}
.rg-dialog-group.collapsed .rg-dialog-group-header {
    padding-bottom: 0px;
}
.rg-dialog-group-content {
    padding: 2px 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 8px;
    align-items: center;
}
.rg-dialog-group.collapsed .rg-dialog-group-content {
    display: none;
}
.rg-dialog-group-content .rg-dialog-label {
    /* font-size: 0.95em; */
}
.rg-dialog .rg-dialog-group-content input:not([type='checkbox']):not([type='radio']):not([type='button']):not([type='submit']):not([type='range']),
.rg-dialog .rg-dialog-group-content select {
    width: 100%;
    box-sizing: border-box;
}

/** Tab view */
.rg-dialog-tabs {
    display: flex;
    flex-direction: column;
    margin-bottom: 4px;
}
.rg-dialog-tab-bar {
    display: flex;
    border-bottom: 1px solid #d1d5db;
    gap: 2px;
    padding: 0 2px;
}
.rg-dialog-tab-btn {
    padding: 4px 14px;
    font-size: 12px;
    border: 1px solid transparent;
    border-bottom: none;
    background: none;
    cursor: pointer;
    color: #6b7280;
    border-radius: 4px 4px 0 0;
    position: relative;
    bottom: -1px;
    transition: color 0.15s;
} 
.rg-dialog-tab-btn:hover {
    color: #374151;
    background-color: #f3f4f6;
}
.rg-dialog-tab-btn.active {
    color: #1d4ed8;
    background-color: #fff;
    border-color: #d1d5db;
    font-weight: 500;
}
.rg-dialog-tab-panels {
    padding-top: 6px;
}
.rg-dialog-tab-panel > .rg-dialog-group-header {
    display: none;
}
.rg-dialog-tab-panel > .rg-dialog-group-content {
    display: grid;
}

/** Alert view */
.rg-dialog-alert-body {
    display: flex;
    align-items: center;
    justify-content: center;
}

.rg-dialog-alert-message {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #333;
}

.rg-dialog-alert-message::before {
    content: '';
    display: inline-block;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23777777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0z'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}/* ============================================================
   ContextMenu.css — rg-ctx-menu
   Light theme base / Adobe Spectrum color system
   ============================================================

   Adobe Spectrum light palette reference:
   gray-50  : #FFFFFF   gray-75  : #FAFAFA   gray-100 : #F5F5F5
   gray-200 : #E8E8E8   gray-300 : #D5D5D5   gray-400 : #B3B3B3
   gray-700 : #6A6A6A   gray-800 : #4B4B4B   gray-900 : #2C2C2C
   blue-400 : #4B9CF5   blue-500 : #1473E6   blue-600 : #0858BF
   ============================================================ */

.rg-ctx-menu {
    position: fixed;
    z-index: 9000;
    display: none;
    min-width: 172px;
    padding: 4px 0;
    background: #FFFFFF;                    /* gray-50 */
    border: 1px solid #D5D5D5;              /* gray-300 */
    border-radius: 6px;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.10),
        0 0  2px rgba(0, 0, 0, 0.06);
    font-size: 13px;
    font-family: inherit;
    user-select: none;
    outline: none;
}

.rg-ctx-menu--open {
    display: block;
}

/* -- List ---------------------------------------------------- */
.rg-ctx-menu__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* -- Item ---------------------------------------------------- */
.rg-ctx-menu__item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    cursor: pointer;
    color: #2C2C2C;                         /* gray-900 */
    white-space: nowrap;
    outline: none;
    transition: background 80ms ease;
}

.rg-ctx-menu__item:hover,
.rg-ctx-menu__item:focus {
    background: #F5F5F5;                    /* gray-100 */
    color: #0858BF;                         /* blue-600 */
}

.rg-ctx-menu__item--disabled {
    color: #B3B3B3;                         /* gray-400 */
    cursor: default;
    pointer-events: none;
}

/* -- Icon ---------------------------------------------------- */
.rg-ctx-menu__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: #6A6A6A;                         /* gray-700 */
}

.rg-ctx-menu__icon svg {
    width: 16px;
    height: 16px;
    display: block;
    fill: currentColor;
    flex-shrink: 0;
}

.rg-ctx-menu__icon img {
    width: 16px;
    height: 16px;
    display: block;
    object-fit: contain;
}

/* -- Label --------------------------------------------------- */
.rg-ctx-menu__label {
    flex: 1;
}

/* -- Sub-menu arrow ------------------------------------------ */
.rg-ctx-menu__arrow {
    margin-left: auto;
    padding-left: 8px;
    flex-shrink: 0;
    font-size: 10px;
    color: #6A6A6A;                         /* gray-700 */
}

.rg-ctx-menu__arrow::after {
    content: '\25B6';
}

/* -- Separator ----------------------------------------------- */
.rg-ctx-menu__sep {
    height: 1px;
    margin: 4px 0;
    background: #E8E8E8;                    /* gray-200 */
    pointer-events: none;
}/* ============================================================
   Dropdown.css — rg-dropdown
   Light theme base / Adobe Spectrum color system
   ============================================================

   Adobe Spectrum light palette reference:
   gray-50  : #FFFFFF   gray-75  : #FAFAFA   gray-100 : #F5F5F5
   gray-200 : #E8E8E8   gray-300 : #D5D5D5   gray-400 : #B3B3B3
   gray-700 : #6A6A6A   gray-800 : #4B4B4B   gray-900 : #2C2C2C
   blue-400 : #4B9CF5   blue-500 : #1473E6   blue-600 : #0858BF
   blue-100 (tint): #E8F0FE
   ============================================================ */

.rg-dropdown {
    position: fixed;
    z-index: 9000;
    display: none;
    min-width: 140px;
    padding: 4px 0;
    background: #FFFFFF;                   /* gray-50 */
    border: 1px solid #D5D5D5;             /* gray-300 */
    border-radius: 6px;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.10),
        0 0  2px rgba(0, 0, 0, 0.06);
    font-size: 13px;
    font-family: inherit;
    user-select: none;
}

.rg-dropdown--open {
    display: block;
}

/* ── Search ───────────────────────────────────────────────── */
.rg-dropdown__search-wrap {
    padding: 6px 8px;
    border-bottom: 1px solid #E8E8E8;      /* gray-200 */
}

.rg-dropdown__search {
    width: 100%;
    box-sizing: border-box;
    padding: 5px 8px;
    border: 1px solid #D5D5D5;             /* gray-300 */
    border-radius: 4px;
    font-size: 12px;
    outline: none;
    background: #F5F5F5;                   /* gray-100 */
    color: #2C2C2C;                        /* gray-900 */
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.rg-dropdown__search:focus {
    border-color: #1473E6;                 /* blue-500 (Adobe accent) */
    background: #FFFFFF;
    box-shadow: 0 0 0 2px rgba(20, 115, 230, 0.20);
}

/* ── List ─────────────────────────────────────────────────── */
.rg-dropdown__list {
    margin: 0;
    padding: 0;
    list-style: none;
    max-height: 280px;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.rg-dropdown__list::-webkit-scrollbar {
    width: 6px;
}
.rg-dropdown__list::-webkit-scrollbar-track {
    background: transparent;
}
.rg-dropdown__list::-webkit-scrollbar-thumb {
    background: #D5D5D5;                   /* gray-300 */
    border-radius: 3px;
}

/* ── Item ─────────────────────────────────────────────────── */
.rg-dropdown__item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    cursor: pointer;
    color: #2C2C2C;                        /* gray-900 */
    white-space: nowrap;
    outline: none;
    transition: background 80ms ease;
}

.rg-dropdown__item:hover,
.rg-dropdown__item:focus {
    background: #F5F5F5;                   /* gray-100 */
}

.rg-dropdown__item--selected {
    font-weight: 500;
}

/* 체크마크 영역 — checkable 모드일 때 항상 고정 너비 예약 (너비 흔들림 방지) */
.rg-dropdown__item--checkable::after {
    content: '';                             /* 공간 예약 (체크 없을 때 빈 칸) */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;                             /* 체크마크 너비 고정 */
    margin-left: auto;
    padding-left: 12px;
    font-size: 11px;
    color: transparent;
    flex-shrink: 0;
}

/* 체크마크 — checked 상태일 때만 ✓ 표시 */
.rg-dropdown__item--checkable.rg-dropdown__item--checked::after {
    content: '✓';
    color: #2C2C2C;                          /* gray-900 */
}

.rg-dropdown__item--disabled {
    color: #B3B3B3;                        /* gray-400 */
    cursor: default;
    pointer-events: none;
}

/* ── Icon ─────────────────────────────────────────────────── */
.rg-dropdown__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: #6A6A6A;                        /* gray-700 */
}

.rg-dropdown__icon svg {
    width: 16px;
    height: 16px;
    display: block;
    fill: currentColor;                    /* 부모 color 상속 */
    flex-shrink: 0;
}

.rg-dropdown__icon img {
    width: 16px;
    height: 16px;
    display: block;
    object-fit: contain;
}

/* ── Label ────────────────────────────────────────────────── */
.rg-dropdown__label {
    flex: 1;
}

/* ── Separator ────────────────────────────────────────────── */
.rg-dropdown__sep {
    height: 1px;
    margin: 4px 0;
    background: #E8E8E8;                   /* gray-200 */
    pointer-events: none;
}

/* -- Sub-menu arrow ------------------------------------------ */
.rg-dropdown__arrow {
    margin-left: auto;
    padding-left: 8px;
    flex-shrink: 0;
    font-size: 10px;
    color: #6A6A6A;                        /* gray-700 */
}

.rg-dropdown__arrow::after {
    content: '\25B6';
}

.rg-dropdown__item--has-sub:hover .rg-dropdown__arrow,
.rg-dropdown__item--has-sub:focus .rg-dropdown__arrow {
    color: #2C2C2C;
}

/* -- Sub-menu container (positioned via JS) ------------------ */
.rg-dropdown--sub {
    position: fixed;
    z-index: 9001;
}/* ============================================================
   Popover.css — rg-popover
   Headless 원칙: position·z-index·display 토글만 담당.
   시각적 스타일(패딩, 배경, 테두리 등)은 소비자가 제어.
   ============================================================ */

.rg-popover {
    position: fixed;
    z-index: 9000;
    display: none;
}

.rg-popover--open {
    display: block;
}

/* 콘텐츠 슬롯 — 소비자가 스타일을 완전히 제어 */
.rg-popover__content {}/* ---- Backdrop overlay to block hover events outside menu ---- */
.rtool-popup-menu-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background: transparent;
}

.rtool-popup-menu {
    min-width: 160px;
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    padding: 4px 0;
    font-size: 13px;
    font-family: inherit;
    color: #222;
}

/* ---- Submenu ---- */
.rtool-popup-menu-submenu {
    /* border-left: 2px solid #1a73b8; */
}

/* ---- Separator ---- */
.rtool-popup-menu-separator {
    height: 1px;
    background: #e8e8e8;
    margin: 5px 0;
}

/* ---- Header ---- */
.rtool-popup-menu-header {
    padding: 5px 12px 3px 12px;
    font-size: 0.93em;
    font-weight: 600;
    color: #686;
    user-select: none;
}

/* ---- Menu item row ---- */
.rtool-popup-menu-item {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px 4px 4px;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
    transition: background-color 0.1s;
}

.rtool-popup-menu-item:hover {
    background-color: #f0f0f0;
    color: #222;
}

.rtool-popup-menu-item.disabled {
    opacity: 0.45;
    cursor: default;
    pointer-events: none;
}

.rtool-popup-menu-item.default {
    font-weight: 600;
}

/* ---- Check area ---- */
.rtool-popup-menu-check {
    width: 18px;
    height: 16px;
    flex-shrink: 0;
}

.rtool-popup-menu-item.checked .rtool-popup-menu-check {
    background-color: #333;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5L6.5 11.5L12.5 4.5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5L6.5 11.5L12.5 4.5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    -webkit-mask-size: 14px 14px;
    mask-size: 14px 14px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.rtool-popup-menu-item.checked:hover .rtool-popup-menu-check {
    background-color: #333;
}

/* ---- Icon ---- */
.rtool-popup-menu-icon {
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rtool-popup-menu-icon svg {
    width: 16px;
    height: 16px;
}

/* ---- Label ---- */
.rtool-popup-menu-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Keyboard shortcut ---- */
.rtool-popup-menu-shortcut {
    flex-shrink: 0;
    margin-left: 20px;
    font-size: 11px;
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.rtool-popup-menu-item:hover .rtool-popup-menu-shortcut {
    color: #777;
}

.rtool-popup-menu-item.disabled .rtool-popup-menu-shortcut {
    opacity: 0.6;
}

/* ---- Submenu arrow ---- */
.rtool-popup-menu-arrow {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-left: 8px;
    background-color: #333;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 3L11 8L6 13' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 3L11 8L6 13' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    -webkit-mask-size: 13px 13px;
    mask-size: 13px 13px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.rtool-popup-menu-item:hover .rtool-popup-menu-arrow {
    background-color: #333;
}

/* ============================================ */
/* CheckList Panel                              */
/* ============================================ */

.rtool-popup-menu-checklist-panel {
    position: fixed;
    z-index: 10001;
    min-width: 200px;
    max-width: 300px;
    max-height: 360px;
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    display: flex;
    flex-direction: column;
    font-size: 12px;
    font-family: inherit;
    color: #222;
}

/* Search box */
.rtool-popup-menu-checklist-search-box {
    position: relative;
    display: flex;
    align-items: center;
}

/* Search input */
.rtool-popup-menu-checklist-search {
    box-sizing: border-box;
    width: 100%;
    padding: 6px 26px 6px 26px;
    font-size: 12px;
    font-family: inherit;
    border: none;
    border-bottom: 1px solid #e0e0e0;
    outline: none;
    background: #f5f5f5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='6.5' cy='6.5' r='4.5' stroke='%23999' stroke-width='1.3'/%3E%3Cpath d='M10 10L14 14' stroke='%23999' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E") 6px center / 14px 14px no-repeat;
    border-radius: 4px 4px 0 0;
}

.rtool-popup-menu-checklist-search:focus {
    background-color: #ffffff;
}

/* Search clear button */
.rtool-popup-menu-checklist-search-clear {
    position: absolute;
    right: 4px;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    opacity: 0.5;
    background-color: #666;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 4L12 12M12 4L4 12' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 4L12 12M12 4L4 12' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    -webkit-mask-size: 14px 14px;
    mask-size: 14px 14px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.rtool-popup-menu-checklist-search-clear:hover {
    opacity: 0.8;
}

/* Checkbox list */
.rtool-popup-menu-checklist-list {
    flex: 1;
    overflow-y: auto;
    padding: 4px 0;
    max-height: 200px;
}

/* ---- Inline CheckList ---- */
.rtool-popup-menu-checklist-inline {
    display: flex;
    flex-direction: column;
}

.rtool-popup-menu-checklist-inline-header {
    padding: 5px 8px 4px;
    font-size: 11px;
    font-weight: 600;
    color: #666;
    border-bottom: 1px solid #e0e0e0;
}

.rtool-popup-menu-checklist-inline .rtool-popup-menu-checklist-search {
    border-top: none;
}

/* Select all row */
.rtool-popup-menu-checklist-all {
    border-bottom: 1px solid #e0e0e0;
    font-weight: 600;
}

.rtool-popup-menu-checklist-count {
    font-size: 11px;
    font-weight: 400;
    color: #999;
    margin-left: auto;
}

/* Individual check item */
.rtool-popup-menu-checklist-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    cursor: pointer;
    user-select: none;
}

.rtool-popup-menu-checklist-item:hover {
    background: #f0f0f0;
    color: #222;
}

.rtool-popup-menu-checklist-item input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
}

.rtool-popup-menu-checklist-item span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Footer: single select + apply on one row */
.rtool-popup-menu-checklist-footer {
    display: flex;
    align-items: center;
    border-top: 1px solid #e0e0e0;
}

/* Single select toggle */
.rtool-popup-menu-checklist-single {
    border-top: none;
    padding-top: 4px;
    padding-bottom: 4px;
    margin-top: 0;
    font-size: 13px;
    color: #666;
    flex: 1;
    min-width: 0;
}

/* Apply button */
.rtool-popup-menu-checklist-apply {
    display: block;
    padding: 5px 14px;
    margin: 4px 6px 4px 0;
    font-size: 12px;
    font-family: inherit;
    border: 1px solid #0078d4;
    background: #0078d4;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    border-radius: 3px;
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.rtool-popup-menu-checklist-apply:hover {
    background: #106ebe;
    border-color: #106ebe;
}

.rtool-popup-menu-checklist-apply:disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}/* Portal-scope tokens (body로 분리되는 요소가 읽어야 하므로 전역에 선언) */
:root {
    --rpivot-dialog-overlay-bg: rgba(0, 0, 0, 0.1);
}

/* Root Style */
.rpivot-root {
    --rpivot-page-bg-color: white;

    /* --rpivot-splitter-bg: #c9d9ea; */
    --rpivot-splitter-bg: #aac;
    --rpivot-splitter-ghost-bg: #3b82f6;
    --rpivot-dockable-splitter-bd: #f8fafc;

    --rpivot-ghost-panel-bg: rgba(59, 130, 246, 0.1);
    --rpivot-ghost-panel-bd: #3b82f6;
    --rpivot-ghost-panel-sd: rgba(30, 58, 95, 0.12);

    --rpivot-drag-ghost-bg: rgba(120, 120, 120, 0.15);
    --rpivot-drag-ghost-bd: rgba(90, 90, 90, 0.7);
    --rpivot-dock-preview-bg: rgba(120, 120, 120, 0.22);
    --rpivot-dock-preview-bd: rgba(80, 80, 80, 0.75);

    --rpivot-menu-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='3' r='1.5' fill='%23666'/%3E%3Ccircle cx='8' cy='8' r='1.5' fill='%23666'/%3E%3Ccircle cx='8' cy='13' r='1.5' fill='%23666'/%3E%3C/svg%3E");
    --rpivot-menu-hover-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='3' r='1.5' fill='%23333'/%3E%3Ccircle cx='8' cy='8' r='1.5' fill='%23333'/%3E%3Ccircle cx='8' cy='13' r='1.5' fill='%23333'/%3E%3C/svg%3E");
    --rpivot-field-menu-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline points='3,5.5 8,10.5 13,5.5' fill='none' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --rpivot-field-menu-hover-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline points='4,6 8,10 12,6' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --rpivot-close-button-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 4l8 8M12 4l-8 8' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    --rpivot-filter-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M1 2h12L8.5 8v5l-3 1.5V8z' fill='%23bbb' stroke='none' stroke-width='1.5'/%3E%3C/svg%3E");
    --rpivot-filtered-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M1 2h12L8.5 8v5l-3 1.5V8z' fill='%23777'/%3E%3C/svg%3E");
    --rpivot-sort-asc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 14'%3E%3Cpath d='M3 1L0.5 5h5L3 1z' fill='%23555'/%3E%3Cline x1='3' y1='5' x2='3' y2='13' stroke='%23555' stroke-width='1.2'/%3E%3C/svg%3E");
    --rpivot-sort-desc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 14'%3E%3Cline x1='3' y1='1' x2='3' y2='9' stroke='%23555' stroke-width='1.2'/%3E%3Cpath d='M3 13L0.5 9h5L3 13z' fill='%23555'/%3E%3C/svg%3E");

    /* --rpivot-table-settings-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='1.5' width='2.5' height='2.5' rx='0.8' fill='%23666'/%3E%3Crect x='5.5' y='1.5' width='9' height='2.5' rx='0.8' fill='%23888'/%3E%3Crect x='1.5' y='5.5' width='2.5' height='9' rx='0.8' fill='%23888'/%3E%3Crect x='5.5' y='5.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3Crect x='10.5' y='5.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3Crect x='5.5' y='10.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3Crect x='10.5' y='10.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3C/svg%3E");
    --rpivot-theme-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='2' width='5.5' height='5.5' rx='1' fill='%23e67'/%3E%3Crect x='8.5' y='2' width='5.5' height='5.5' rx='1' fill='%23fb4'/%3E%3Crect x='2' y='8.5' width='5.5' height='5.5' rx='1' fill='%236b5'/%3E%3Crect x='8.5' y='8.5' width='5.5' height='5.5' rx='1' fill='%2368c'/%3E%3C/svg%3E"); */
    --rpivot-values-as-rows-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='1.5' width='3' height='13' rx='0.5' fill='%23889'/%3E%3Crect x='6.5' y='1.5' width='3' height='13' rx='0.5' fill='%23889'/%3E%3Crect x='11' y='1.5' width='3' height='13' rx='0.5' fill='%23889'/%3E%3C/svg%3E");
    --rpivot-values-as-rows-active-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='2' width='13' height='3' rx='0.5' fill='%23889'/%3E%3Crect x='1.5' y='6.5' width='13' height='3' rx='0.5' fill='%23889'/%3E%3Crect x='1.5' y='11' width='13' height='3' rx='0.5' fill='%23889'/%3E%3C/svg%3E");
    /* --rpivot-databar-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='2' width='12' height='3' rx='0.5' fill='%23669'/%3E%3Crect x='2' y='6.5' width='8' height='3' rx='0.5' fill='%23669'/%3E%3Crect x='2' y='11' width='5' height='3' rx='0.5' fill='%23669'/%3E%3C/svg%3E"); */
    /* --rpivot-heatmap-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='2' width='5.5' height='5.5' rx='1' fill='%23e67'/%3E%3Crect x='8.5' y='2' width='5.5' height='5.5' rx='1' fill='%23fb4'/%3E%3Crect x='2' y='8.5' width='5.5' height='5.5' rx='1' fill='%236b5'/%3E%3Crect x='8.5' y='8.5' width='5.5' height='5.5' rx='1' fill='%2368c'/%3E%3C/svg%3E"); */
    --rpivot-crosshair-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg stroke='%23666' stroke-width='1.4' stroke-linecap='round' fill='none'%3E%3Cline x1='8' y1='1.5' x2='8' y2='5.5'/%3E%3Cline x1='8' y1='10.5' x2='8' y2='14.5'/%3E%3Cline x1='1.5' y1='8' x2='5.5' y2='8'/%3E%3Cline x1='10.5' y1='8' x2='14.5' y2='8'/%3E%3Ccircle cx='8' cy='8' r='2.2'/%3E%3C/g%3E%3C/svg%3E");
    /* row header layout 토글: 기본(grid) / 트리(tree) */
    /* --rpivot-grid-layout-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' shape-rendering='crispEdges'%3E%3Cg fill='none' stroke='%23778' stroke-width='1.4'%3E%3Crect x='1.5' y='1.5' width='13' height='13'/%3E%3Cline x1='7' y1='1.5' x2='7' y2='14.5'/%3E%3Cline x1='1.5' y1='8' x2='14.5' y2='8'/%3E%3Cline x1='7' y1='4.75' x2='14.5' y2='4.75'/%3E%3Cline x1='7' y1='11.25' x2='14.5' y2='11.25'/%3E%3C/g%3E%3C/svg%3E");
    --rpivot-tree-layout-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' shape-rendering='crispEdges'%3E%3Cg fill='none' stroke='%23778' stroke-width='1.4'%3E%3Crect x='5.5' y='1.5' width='5' height='4'/%3E%3Crect x='1' y='10.5' width='5' height='4'/%3E%3Crect x='10' y='10.5' width='5' height='4'/%3E%3C/g%3E%3Cg fill='none' stroke='%23778' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M8 5.5 L8 8'/%3E%3Cpath d='M3.5 8 L12.5 8'/%3E%3Cpath d='M3.5 8 L3.5 10.5'/%3E%3Cpath d='M12.5 8 L12.5 10.5'/%3E%3C/g%3E%3C/svg%3E"); */

    --rpivot-bar-divider-color: #aab;

    --rpivot-fieldbar-bg: #f0f0f0;
    --rpivot-fieldbar-color: #333;
    --rpivot-fieldbar-bd-color: #d0d0d0;

    --rpivot-rowbar-value-divider: 1px solid #ccd;
    --rpivot-rowbar-button-hover-bg: #d0d0d0;
    --rpivot-rowbar-crosshair-active-bg: #e0e0e0;
    --rpivot-rowbar-crosshair-active-bd: 1px solid #d0d0d0;

    --rpivot-header-content: #f8f8f8;
    --rpivot-header-color: #111;
    --rpivot-header-bg-color: #fafafa;
    --rpivot-header-bd-color: #ddd;
    --rpivot-header-focused-bg: #00880028;
    --rpivot-header-focused-bg-group: #00880010;
    --rpivot-header-selected-color: #111;
    --rpivot-header-selected-bg: #00880010;
    --rpivot-header-selected-leaf-bd-color: #008800;
    --rpivot-header-selected-leaf-bd-width: 2px;

    --rpivot-header-total-bg: #f0f0f0;
    --rpivot-header-total-color: #111;

    --rpivot-header-grand-bg: #f0f0f0;
    --rpivot-header-grand-color: #111;
    --rpivot-header-grand-value-bg: #f4f4f4;
    --rpivot-header-grand-value-color: #111;

    --rpivot-header-filler-bg: #f8f8f8;
    --rpivot-header-filler-bd-color: #ddd;

    --rpivot-value-cell-bd: 1px solid #e4e4e4;
    --rpivot-value-cell-bg: transparent;
    --rpivot-value-cell-color: #333;
    --rpivot-value-cell-d-bg: #00000004;
    --rpivot-value-cell-d-color: black;
    --rpivot-value-cell-g-bg: #00000004;
    --rpivot-value-cell-g-color: #333;

    --rpivot-body-row-fxied-bg: #f8f8f8;
    --rpivot-body-row-fxied-edge-start: 0 3px 4px 0 rgba(0, 0, 0, 0.15);
    --rpivot-body-row-fxied-edge-end: 0 -3px 4px 0 rgba(0, 0, 0, 0.15);

    --rpivot-select-bd: 1px solid #33c;
    --rpivot-select-bg: #33c1;

    --rpivot-crosshair-line-bg: #00aa3313;
    --rpivot-crosshair-gap-bd: 1px dotted #00aa3344;

    --rpivot-button-bar-color: #333;
    --rpivot-button-bar-hover-bg: #e8e8e8;
    --rpivot-button-bar-pressed-hover-bg: #e8e8e8;

    /** book */
    --rpivot-book-header-bg: #fafcfe;
    --rpivot-book-header-bottom-color: #ddd;

    --rpivot-book-header-layoutbar-bottom-bg: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 15.75H22M2 4.5C2 3.83696 2.26339 3.20107 2.73223 2.73223C3.20107 2.26339 3.83696 2 4.5 2H19.5C20.163 2 20.7989 2.26339 21.2678 2.73223C21.7366 3.20107 22 3.83696 22 4.5V19.5C22 20.163 21.7366 20.7989 21.2678 21.2678C20.7989 21.7366 20.163 22 19.5 22H4.5C3.83696 22 3.20107 21.7366 2.73223 21.2678C2.26339 20.7989 2 20.163 2 19.5V4.5Z' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    --rpivot-book-header-layoutbar-bottom-bg-active: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.22266 15.6671H7.11155H12.0004H21.7782M2.22266 4.6671C2.22266 4.01879 2.4802 3.39704 2.93862 2.93862C3.39704 2.4802 4.01879 2.22266 4.6671 2.22266H19.3338C19.9821 2.22266 20.6038 2.4802 21.0623 2.93862C21.5207 3.39704 21.7782 4.01879 21.7782 4.6671V19.3338C21.7782 19.9821 21.5207 20.6038 21.0623 21.0623C20.6038 21.5207 19.9821 21.7782 19.3338 21.7782H4.6671C4.01879 21.7782 3.39704 21.5207 2.93862 21.0623C2.4802 20.6038 2.22266 19.9821 2.22266 19.3338V4.6671Z' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3.62416 21.1667H20.4475C20.7908 21.1666 21.1223 21.1172 21.3789 21.0277C21.3789 21.0277 21.7994 20.8148 21.8396 20.681L21.8494 20.6167V15.6667L2.22222 15.6667L2.22222 20.6167C2.22227 20.7514 2.34834 20.8814 2.57651 20.9821C2.80469 21.0827 3.11911 21.1471 3.46013 21.1628L3.62416 21.1667Z' fill='%236D6D6D'/%3E%3C/svg%3E%0A");
    --rpivot-book-header-layoutbar-right-bg: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.75 2V22M2 4.5C2 3.83696 2.26339 3.20107 2.73223 2.73223C3.20107 2.26339 3.83696 2 4.5 2H19.5C20.163 2 20.7989 2.26339 21.2678 2.73223C21.7366 3.20107 22 3.83696 22 4.5V19.5C22 20.163 21.7366 20.7989 21.2678 21.2678C20.7989 21.7366 20.163 22 19.5 22H4.5C3.83696 22 3.20107 21.7366 2.73223 21.2678C2.26339 20.7989 2 20.163 2 19.5V4.5Z' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    --rpivot-book-header-layoutbar-right-bg-active: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.7067 2V21.927M2.00684 4.49088C2.00684 3.83026 2.26927 3.19669 2.7364 2.72956C3.20353 2.26243 3.83709 2 4.49771 2H19.443C20.1036 2 20.7372 2.26243 21.2043 2.72956C21.6714 3.19669 21.9339 3.83026 21.9339 4.49088V19.4361C21.9339 20.0968 21.6714 20.7303 21.2043 21.1975C20.7372 21.6646 20.1036 21.927 19.443 21.927H4.49771C3.83709 21.927 3.20353 21.6646 2.7364 21.1975C2.26927 20.7303 2.00684 20.0968 2.00684 19.4361V4.49088Z' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.3115 20.5714L21.3115 3.42857C21.3115 3.07867 21.2611 2.74095 21.1699 2.47947C21.1699 2.47947 20.953 2.05094 20.8166 2.01L20.7511 2L15.707 2L15.707 22L20.7511 22C20.8883 22 21.0208 21.8715 21.1234 21.639C21.226 21.4065 21.2915 21.0861 21.3076 20.7386L21.3115 20.5714Z' fill='%236D6D6D'/%3E%3C/svg%3E%0A");
    --rpivot-book-header-layoutbar-left-bg: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.25 2V22M2 4.5C2 3.83696 2.26339 3.20107 2.73223 2.73223C3.20107 2.26339 3.83696 2 4.5 2H19.5C20.163 2 20.7989 2.26339 21.2678 2.73223C21.7366 3.20107 22 3.83696 22 4.5V19.5C22 20.163 21.7366 20.7989 21.2678 21.2678C20.7989 21.7366 20.163 22 19.5 22H4.5C3.83696 22 3.20107 21.7366 2.73223 21.2678C2.26339 20.7989 2 20.163 2 19.5V4.5Z' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    --rpivot-book-header-layoutbar-left-bg-active: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.2547 2V21.9932M2.00684 4.49915C2.00684 3.83633 2.27014 3.20066 2.73882 2.73198C3.2075 2.2633 3.84317 2 4.50598 2H19.5009C20.1637 2 20.7993 2.2633 21.268 2.73198C21.7367 3.20066 22 3.83633 22 4.49915V19.494C22 20.1568 21.7367 20.7925 21.268 21.2612C20.7993 21.7299 20.1637 21.9932 19.5009 21.9932H4.50598C3.84317 21.9932 3.2075 21.7299 2.73882 21.2612C2.27014 20.7925 2.00684 20.1568 2.00684 19.494V4.49915Z' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M2.00681 3.43331L2.0068 20.6331C2.00682 20.9841 2.05739 21.323 2.14891 21.5853C2.14891 21.5853 2.36654 22.0153 2.50332 22.0563L2.56911 22.0664L7.62988 22.0664L7.62988 2L2.56911 2C2.43139 2.00005 2.29845 2.12894 2.19553 2.36222C2.09261 2.59551 2.02686 2.91696 2.01074 3.26561L2.00681 3.43331Z' fill='%236D6D6D'/%3E%3C/svg%3E%0A");

    --rpivot-book-header-layoutbar-ai-bg: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.25 2V22M13.25 2H4.5C3.83696 2 3.20107 2.26339 2.73223 2.73223C2.26339 3.20107 2 3.83696 2 4.5V19.5C2 20.163 2.26339 20.7989 2.73223 21.2678C3.20107 21.7366 3.83696 22 4.5 22H13.25M13.25 2H19.5C20.163 2 20.7989 2.26339 21.2678 2.73223C21.7366 3.20107 22 3.83696 22 4.5V19.5C22 20.163 21.7366 20.7989 21.2678 21.2678C20.7989 21.7366 20.163 22 19.5 22H13.25' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M22 17.5556C22 17.4082 21.8976 17.2669 21.7152 17.1627C21.5329 17.0585 21.2856 17 21.0278 17H14.2222C13.9644 17 13.7171 17.0585 13.5348 17.1627C13.3524 17.2669 13.25 17.4082 13.25 17.5556V21.4444C13.25 21.5918 13.3524 21.7331 13.5348 21.8373C13.7171 21.9415 13.9644 22 14.2222 22' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
    --rpivot-book-header-layoutbar-ai-bg-active: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.75 2V22M10.75 2H4.5C3.83696 2 3.20107 2.26339 2.73223 2.73223C2.26339 3.20107 2 3.83696 2 4.5V19.5C2 20.163 2.26339 20.7989 2.73223 21.2678C3.20107 21.7366 3.83696 22 4.5 22H10.75M10.75 2H19.5C20.163 2 20.7989 2.26339 21.2678 2.73223C21.7366 3.20107 22 3.83696 22 4.5V19.5C22 20.163 21.7366 20.7989 21.2678 21.2678C20.7989 21.7366 20.163 22 19.5 22H10.75' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M22 17.5556C22 17.4082 21.8683 17.2669 21.6339 17.1627C21.3995 17.0585 21.0815 17 20.75 17H12C11.6685 17 11.3505 17.0585 11.1161 17.1627C10.8817 17.2669 10.75 17.4082 10.75 17.5556V19.5V21.4444C10.75 21.5918 10.8817 21.7331 11.1161 21.8373C11.3505 21.9415 11.6685 22 12 22' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M22 20.75L22 17.3571C22 17.2697 21.8988 17.1852 21.7157 17.1199C21.7157 17.1199 21.2803 17.0127 21.0066 17.0025L20.875 17L10.75 17L10.75 19.5L10.75 22L20.875 22C21.2969 21.625 21.2969 21.375 21.2969 21.375C21.5028 21.3169 21.6835 21.3523 21.7157 21.2654L22 20.75Z' fill='%236D6D6D'/%3E%3Cpath d='M13.25 13.25H19.5M13.25 10.125H19.5M13.25 7H19.5' stroke='%236D6D6D' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");

    --rpivot-menubar-item-color: #111;
    --rpivot-menubar-setup-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23118' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
    --rpivot-menubar-export-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23118' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8'/%3E%3Cpolyline points='16 6 12 2 8 6'/%3E%3Cline x1='12' y1='2' x2='12' y2='15'/%3E%3C/svg%3E");
    --rpivot-menubar-undo-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23118' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14 4 9l5-5'/%3E%3Cpath d='M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11'/%3E%3C/svg%3E");
    --rpivot-menubar-redo-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23118' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 14 5-5-5-5'/%3E%3Cpath d='M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13'/%3E%3C/svg%3E");

    --rpivot-book-footer-bg: #e8e8e8;
    --rpivot-book-footer-counts-color: #555;
    --rpivot-book-footer-counts-filtered-color: #a55;

    --rpivot-pagetab-bg: #e9e9e9;
    --rpivot-pagetab-selected-bg: white;
    --rpivot-pagetab-hover-bg: #d8d8d8;
    --rpivot-pagetab-selected-hover-bg: #efffff;
    --rpivot-pagetab-color: black;
    --rpivot-pagetab-selected-color: #007acc;
    --rpivot-pagetab-bottom: #007acc;

    --rpivot-inspector-min-width: 260px;
    --rpivot-inspector-bg: #f8fafc;
    --rpivot-inspector-border: #e2e8f0;
    --rpivot-inspector-color: #333;
    --rpivot-inspector-text: #333;
    --rpivot-inspector-text-muted: #64748b;
    --rpivot-inspector-primary: #1e3a5f;
    --rpivot-inspector-primary-hover: #2a5f9e;
    --rpivot-inspector-accent-bg: #f0f9ff;
    --rpivot-inspector-accent-bd: #3b82f6;
    --rpivot-inspector-field-hover-bg: #f1f5f9;
    --rpivot-inspector-section-bg: #ffffff;
    /* --rpivot-inspector-btn-padding: 5px 14px;
    --rpivot-inspector-btn-font-size: 13px;
    --rpivot-inspector-btn-font-weight: 500;
    --rpivot-inspector-btn-border-radius: 6px; */

    --rpivot-field-panel-footer-color: #333;
    --rpivot-field-section-bd: #ccc;
    --rpivot-field-section-header-bg: #f8f8f8;
    --rpivot-field-section-title-color: #555;

    --rpivot-filter-selector-title-text-color: #555;
    --rpivot-filter-selector-title-count-color: #111;
    --rpivot-slider-label-color: #111;

    --rpivot-explorer-bg: #f8fafc;
    --rpivot-explorer-header-info-color: #111;
    --rpivot-explorer-header-info-bg: #ffcc7710;
    --rpivot-explorer-header-info-bd: #dedede;
    --rpivot-explorer-header-info-bd-left: #aaa;
    --rpivot-explorer-header-info-bd-top: #ccc;
    --rpivot-explorer-header-count-color: #555;

    --rpivot-ai-prompter-prompt-bg: #fff;
    --rpivot-ai-prompter-response-width: 840px;
    --rpivot-ai-prompter-prompt-width: 680px;
    --rpivot-ai-prompter-suggestion-color: #777;
    --rpivot-ai-prompter-suggestion-bg: #fff;
    --rpivot-ai-prompter-suggestion-hover-bg: #f0f0f0;
    --rpivot-ai-prompter-input-color: #333;
    --rpivot-ai-prompter-query-bg: #eeeef2;
    --rpivot-ai-prompter-response-color: #333;
    --rpivot-ai-prompter-response-border-top: #ddd;
    --rpivot-ai-prompter-code-bg: #f4f4f8;
    --rpivot-ai-prompter-code-border: #d7dbe0;

    --rpivot-ai-container-bg: #f8fafc;
    --rpivot-ai-container-color: #333;
    --rpivot-ai-container-header-bd: #ccc;

    --rpivot-add-page-bg: #f6f8fa;
    --rpivot-add-page-color: #333;

    /** for realdata-ui filter selectors */
    --rdata-filter-bg: var(--rpivot-filter-bg);
    --rdata-filtered-bg: var(--rpivot-filtered-bg);
    --rdata-field-menu-hover-bg: var(--rpivot-field-menu-hover-bg);
    --rdata-filter-selector-title-text-color: var(--rpivot-filter-selector-title-text-color);
    --rdata-filter-selector-title-count-color: var(--rpivot-filter-selector-title-count-color);
    --rdata-slider-label-color: var(--rpivot-slider-label-color);
}

.rpivot-root[data-theme="dark"] {
    --rpivot-page-bg-color: #333;

    --rpivot-splitter-bg: #39492a;
    --rpivot-splitter-ghost-bg: #eb8216;

    --rpivot-ghost-panel-bg: rgba(246, 130, 52, 0.1);
    --rpivot-ghost-panel-bd: #eb8216;
    --rpivot-ghost-panel-sd: rgba(95, 58, 20, 0.12);
    --rpivot-drag-ghost-bg: rgba(120, 120, 120, 0.15);
    --rpivot-drag-ghost-bd: rgba(90, 90, 90, 0.7);
    --rpivot-dock-preview-bg: rgba(255, 255, 230, 0.22);
    --rpivot-dock-preview-bd: rgba(255, 255, 230, 0.75);

    --rpivot-menu-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='3' r='1.5' fill='%23aaa'/%3E%3Ccircle cx='8' cy='8' r='1.5' fill='%23aaa'/%3E%3Ccircle cx='8' cy='13' r='1.5' fill='%23aaa'/%3E%3C/svg%3E");
    --rpivot-menu-hover-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='3' r='1.5' fill='%23fff'/%3E%3Ccircle cx='8' cy='8' r='1.5' fill='%23fff'/%3E%3Ccircle cx='8' cy='13' r='1.5' fill='%23fff'/%3E%3C/svg%3E");
    --rpivot-field-menu-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline points='4,6 8,10 12,6' fill='none' stroke='%23aaa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --rpivot-field-menu-hover-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline points='4,6 8,10 12,6' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --rpivot-close-button-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 4l8 8M12 4l-8 8' stroke='%23aaa' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    --rpivot-filter-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M1 2h12L8.5 8v5l-3 1.5V8z' fill='%23777' stroke='none' stroke-width='1.5'/%3E%3C/svg%3E");
    --rpivot-filtered-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M1 2h12L8.5 8v5l-3 1.5V8z' fill='%23555'/%3E%3C/svg%3E");
    --rpivot-sort-asc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 14'%3E%3Cpath d='M3 1L0.5 5h5L3 1z' fill='%23aaa'/%3E%3Cline x1='3' y1='5' x2='3' y2='13' stroke='%23aaa' stroke-width='1.2'/%3E%3C/svg%3E");
    --rpivot-sort-desc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 14'%3E%3Cline x1='3' y1='1' x2='3' y2='9' stroke='%23aaa' stroke-width='1.2'/%3E%3Cpath d='M3 13L0.5 9h5L3 13z' fill='%23aaa'/%3E%3C/svg%3E");
    /* --rpivot-table-settings-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='1.5' width='2.5' height='2.5' rx='0.8' fill='%23aaa'/%3E%3Crect x='5.5' y='1.5' width='9' height='2.5' rx='0.8' fill='%23888'/%3E%3Crect x='1.5' y='5.5' width='2.5' height='9' rx='0.8' fill='%23888'/%3E%3Crect x='5.5' y='5.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3Crect x='10.5' y='5.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3Crect x='5.5' y='10.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3Crect x='10.5' y='10.5' width='4' height='4' rx='0.5' fill='%23aaa'/%3E%3C/svg%3E"); */
    --rpivot-theme-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='2' width='5.5' height='5.5' rx='1' fill='%236b5'/%3E%3Crect x='8.5' y='2' width='5.5' height='5.5' rx='1' fill='%2368c'/%3E%3Crect x='2' y='8.5' width='5.5' height='5.5' rx='1' fill='%23e67'/%3E%3Crect x='8.5' y='8.5' width='5.5' height='5.5' rx='1' fill='%23fb4'/%3E%3C/svg%3E");
    --rpivot-values-as-rows-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='1.5' width='3' height='13' rx='0.5' fill='%23889'/%3E%3Crect x='6.5' y='1.5' width='3' height='13' rx='0.5' fill='%23889'/%3E%3Crect x='11' y='1.5' width='3' height='13' rx='0.5' fill='%23889'/%3E%3C/svg%3E");
    --rpivot-values-as-rows-active-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='2' width='13' height='3' rx='0.5' fill='%23889'/%3E%3Crect x='1.5' y='6.5' width='13' height='3' rx='0.5' fill='%23889'/%3E%3Crect x='1.5' y='11' width='13' height='3' rx='0.5' fill='%23889'/%3E%3C/svg%3E");
    /* --rpivot-databar-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='2' width='12' height='3' rx='0.5' fill='%23669'/%3E%3Crect x='2' y='6.5' width='8' height='3' rx='0.5' fill='%23669'/%3E%3Crect x='2' y='11' width='5' height='3' rx='0.5' fill='%23669'/%3E%3C/svg%3E"); */
    /* --rpivot-heatmap-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='2' width='5.5' height='5.5' rx='1' fill='%23e67'/%3E%3Crect x='8.5' y='2' width='5.5' height='5.5' rx='1' fill='%23fb4'/%3E%3Crect x='2' y='8.5' width='5.5' height='5.5' rx='1' fill='%236b5'/%3E%3Crect x='8.5' y='8.5' width='5.5' height='5.5' rx='1' fill='%2368c'/%3E%3C/svg%3E"); */
    --rpivot-crosshair-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg stroke='%23aaa' stroke-width='1.4' stroke-linecap='round' fill='none'%3E%3Cline x1='8' y1='1.5' x2='8' y2='5.5'/%3E%3Cline x1='8' y1='10.5' x2='8' y2='14.5'/%3E%3Cline x1='1.5' y1='8' x2='5.5' y2='8'/%3E%3Cline x1='10.5' y1='8' x2='14.5' y2='8'/%3E%3Ccircle cx='8' cy='8' r='2.2'/%3E%3C/g%3E%3C/svg%3E");
    /* row header layout 토글: 기본(grid) / 트리(tree) */
    /* --rpivot-grid-layout-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' shape-rendering='crispEdges'%3E%3Cg fill='none' stroke='%23778' stroke-width='1.4'%3E%3Crect x='1.5' y='1.5' width='13' height='13'/%3E%3Cline x1='7' y1='1.5' x2='7' y2='14.5'/%3E%3Cline x1='1.5' y1='8' x2='14.5' y2='8'/%3E%3Cline x1='7' y1='4.75' x2='14.5' y2='4.75'/%3E%3Cline x1='7' y1='11.25' x2='14.5' y2='11.25'/%3E%3C/g%3E%3C/svg%3E"); */
    --rpivot-tree-layout-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' shape-rendering='crispEdges'%3E%3Cg fill='none' stroke='%23778' stroke-width='1.4'%3E%3Crect x='5.5' y='1.5' width='5' height='4'/%3E%3Crect x='1' y='10.5' width='5' height='4'/%3E%3Crect x='10' y='10.5' width='5' height='4'/%3E%3C/g%3E%3Cg fill='none' stroke='%23778' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M8 5.5 L8 8'/%3E%3Cpath d='M3.5 8 L12.5 8'/%3E%3Cpath d='M3.5 8 L3.5 10.5'/%3E%3Cpath d='M12.5 8 L12.5 10.5'/%3E%3C/g%3E%3C/svg%3E");

    --rpivot-bar-divider-color: #000;

    --rpivot-fieldbar-bg: #333;
    --rpivot-fieldbar-color: #eee;
    --rpivot-fieldbar-bd-color: #555;

    --rpivot-rowbar-value-divider: 1px solid #555;
    --rpivot-rowbar-button-hover-bg: #111;
    --rpivot-rowbar-crosshair-active-bg: #111;
    --rpivot-rowbar-crosshair-active-bd: 1px solid #555;

    --rpivot-header-content: #080808;
    --rpivot-header-color: #eee;
    --rpivot-header-bg-color: #222;
    --rpivot-header-bd-color: #555;
    --rpivot-header-focused-bg: #446;
    --rpivot-header-focused-bg-group: #00880010;
    --rpivot-header-selected-color: #eee;
    --rpivot-header-selected-bg: #334;
    --rpivot-header-selected-leaf-bd-color: #008800;
    --rpivot-header-selected-leaf-bd-width: 2px;

    --rpivot-header-total-bg: #333;
    --rpivot-header-total-color: #eee;

    --rpivot-header-grand-bg: #333;
    --rpivot-header-grand-color: #eee;
    --rpivot-header-grand-value-bg: #444;
    --rpivot-header-grand-value-color: #eee;

    --rpivot-header-filler-bg: #777;
    --rpivot-header-filler-bd-color: #555;

    --rpivot-value-cell-bd: 1px solid #555;
    --rpivot-value-cell-bg: #222;
    --rpivot-value-cell-color: #eee;
    --rpivot-value-cell-d-bg: #333;
    --rpivot-value-cell-d-color: #eee;
    --rpivot-value-cell-g-bg: #333;
    --rpivot-value-cell-g-color: #eee;

    --rpivot-body-row-fixed-bg: #222;
    --rpivot-body-row-fixed-edge-start: 0 3px 4px 0 rgba(255, 255, 255, 0.15);
    --rpivot-body-row-fixed-edge-end: 0 -3px 4px 0 rgba(255, 255, 255, 0.15);

    --rpivot-select-bd: 1px solid #eee;
    --rpivot-select-bg: #fff4;

    --rpivot-crosshair-line-bg: #fff2;
    --rpivot-crosshair-gap-bd: 1px dotted #fff2;

    --rpivot-button-bar-color: #eee;
    --rpivot-button-bar-hover-bg: #000;
    --rpivot-button-bar-pressed-hover-bg: #000;

    /** book */
    --rpivot-book-header-bg: #333;
    --rpivot-book-header-bottom-color: #444;

    --rpivot-menubar-item-color: #eee;
    --rpivot-menubar-setup-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
    --rpivot-menubar-export-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8'/%3E%3Cpolyline points='16 6 12 2 8 6'/%3E%3Cline x1='12' y1='2' x2='12' y2='15'/%3E%3C/svg%3E");
    --rpivot-menubar-undo-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14 4 9l5-5'/%3E%3Cpath d='M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11'/%3E%3C/svg%3E");
    --rpivot-menubar-redo-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 14 5-5-5-5'/%3E%3Cpath d='M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13'/%3E%3C/svg%3E");

    --rpivot-book-footer-bg: #333;
    --rpivot-book-footer-counts-color: #eee;
    --rpivot-book-footer-counts-filtered-color: #f55;

    --rpivot-pagetab-bg: #222;
    --rpivot-pagetab-selected-bg: #000;
    --rpivot-pagetab-hover-bg: #555;
    --rpivot-pagetab-selected-hover-bg: #444;
    --rpivot-pagetab-color: #ccc;
    --rpivot-pagetab-selected-color: #fff;
    --rpivot-pagetab-bottom: #cccc00;

    --rpivot-inspector-bg: #333;
    --rpivot-inspector-border: #555;
    --rpivot-inspector-color: #eee;
    --rpivot-inspector-text: #eee;
    --rpivot-inspector-text-muted: #64748b;
    --rpivot-inspector-primary: #1e3a5f;
    --rpivot-inspector-primary-hover: #2a5f9e;
    --rpivot-inspector-accent-bg: #111;
    --rpivot-inspector-accent-bd: #1ff;
    --rpivot-inspector-field-hover-bg: #000;
    --rpivot-inspector-section-bg: #333;
    /* --rpivot-inspector-btn-padding: 5px 14px;
    --rpivot-inspector-btn-font-size: 13px;
    --rpivot-inspector-btn-font-weight: 500;
    --rpivot-inspector-btn-border-radius: 6px; */

    --rpivot-field-panel-footer-color: #eee;
    --rpivot-field-section-bd: #555;
    --rpivot-field-section-header-bg: #444;
    --rpivot-field-section-title-color: #ddd;

    --rpivot-filter-selector-title-text-color: #ddd;
    --rpivot-filter-selector-title-count-color: #f0f0f0;
    --rpivot-slider-label-color: #f0f0f0;

    --rpivot-explorer-bg: #333;
    --rpivot-explorer-header-info-color: #f0f0f0;
    --rpivot-explorer-header-info-bg: #555;
    --rpivot-explorer-header-info-bd: #000;
    --rpivot-explorer-header-info-bd-left: #444;
    --rpivot-explorer-header-info-bd-top: #555;
    --rpivot-explorer-header-count-color: #ddd;

    --rpivot-ai-prompter-prompt-bg: #555;
    --rpivot-ai-prompter-input-color: #fff;
    --rpivot-ai-prompter-suggestion-color: #ccc;
    --rpivot-ai-prompter-suggestion-bg: #555;
    --rpivot-ai-prompter-suggestion-hover-bg: #333;
    --rpivot-ai-prompter-query-bg: #555;
    --rpivot-ai-prompter-response-color: #ddd;
    --rpivot-ai-prompter-response-border-top: #555;
    --rpivot-ai-prompter-code-bg: #2d2d2d;
    --rpivot-ai-prompter-code-border: #555;

    --rpivot-ai-container-bg: #333;
    --rpivot-ai-container-color: #fff;
    --rpivot-ai-container-header-bd: #555;

    --rpivot-add-page-bg: #333;
    --rpivot-add-page-color: #ccc;
}

/** 다이얼로그들은 pivot root 외부에 생성되므로, 다크모드일 때 다이얼로그의 배경색을 지정해주어야 함 */
:root {
    --rpivot-ai-prompter-prompt-bg: #fff;
    --rpivot-ai-prompter-response-width: 840px;
    --rpivot-ai-prompter-prompt-width: 680px;
    --rpivot-ai-prompter-suggestion-color: #777;
    --rpivot-ai-prompter-suggestion-bg: #fff;
    --rpivot-ai-prompter-suggestion-hover-bg: #f0f0f0;
    --rpivot-ai-prompter-input-color: #333;
    --rpivot-ai-prompter-query-bg: #e0e0e0;
    --rpivot-ai-prompter-response-color: #333;
    --rpivot-ai-prompter-response-border-top: none;
    --rpivot-ai-prompter-code-bg: #f6f8fa;
    --rpivot-ai-prompter-code-border: #d7dbe0;
}
/** 다이얼로그용 다크 테마: PivotControlBase._render() 가 html 에 data-rpivot-theme 를 전파한다. */
:root[data-rpivot-theme="dark"] {
    /* --rpivot-ai-prompter-query-bg: #555; */
}

.rpivot-root {
    font-family: AppleSDGothicNeo-Light, "HelveticaNeue", "Malgun Gothic", "맑은 고딕", sans-serif;
    font-size: 13px;
}

.rpivot-menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 4px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-cell {
    position: absolute;
    display: flex;
    height: 100%;
    align-items: center;
    box-sizing: border-box;
    overflow: hidden;
}
/* 모든 셀의 텍스트 span 기본 규칙.
 * - white-space: pre  → formatter가 넣은 공백/`\n`을 그대로 존중.
 *   `\n`이 있으면 줄바꿈이 발생하지만 cell 높이가 1라인이라 둘째 줄 이후는 overflow:hidden으로 잘림.
 * - text-overflow: ellipsis → 수평 overflow에서만 동작. 멀티라인 ellipsis는 미적용.
 *   향후 다중라인 표시가 필요한 셀이 생기면 cell 높이를 늘리고 별도 클래스로
 *   `display: -webkit-box; -webkit-line-clamp: N; -webkit-box-orient: vertical;` 처리.
 * - min-width: 0 → flex item이 콘텐츠보다 작게 축소될 수 있게 해서 ellipsis가 동작하도록.
 * - transform → sticky(고정) 셀에서 보이는 영역 중앙으로 텍스트를 따라 이동시킴.
 */
.rpivot-cell > .rpivot-cell-text {
    min-width: 0;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
    transform: translateY(var(--rpivot-sticky-offset, 0px));
}
.rpivot-cell > .rpivot-cell-text[data-italic] {
    /* Italic glyphs can overhang to the right and get clipped by overflow:hidden.
     * padding 으로 우측 clip 여유를 만들고 같은 값의 음수 margin 으로 footprint 를 유지해
     * 우측 정렬 컬럼에서 italic/비italic 정렬이 어긋나지 않게 한다.
     * 비italic 셀은 이 규칙을 안 타므로 padding/margin 을 객게 연산하지 않는다. #189 */
    padding-right: 0.12em;
    margin-right: -0.12em;
}
.rpivot-cell[data-group] {
    padding-left: 17px;
}
.rpivot-cell[data-group]::before {
    content: '';
    position: absolute;
    left: 4px;
    width: 11px;
    height: 11px;
    transform: translateY(var(--rpivot-sticky-offset, 0px));
    /* background-image: url("data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='10' height='10' rx='1' fill='%232892F7' stroke='%232083E3'/%3E%3Crect x='3' y='5' width='5' height='1' fill='white'/%3E%3C/svg%3E"); */
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='10' height='10' rx='1' fill='%232892F7' stroke='%232083E3'/%3E%3Crect x='3' y='5' width='5' height='1' fill='white'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    cursor: pointer;
}
.rpivot-cell[data-group][data-collapsed]::before {
    /* background-image: url("data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='10' height='10' rx='1' fill='%232892F7' stroke='%232083E3'/%3E%3Crect x='3' y='5' width='5' height='1' fill='white'/%3E%3Crect x='5' y='3' width='1' height='5' fill='white'/%3E%3C/svg%3E"); */
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='10' height='10' rx='1' fill='%232892F7' stroke='%232083E3'/%3E%3Crect x='3' y='5' width='5' height='1' fill='white'/%3E%3Crect x='5' y='3' width='1' height='5' fill='white'/%3E%3C/svg%3E");
}

.rpivot-column {
    position: absolute;
    box-sizing: border-box;
    border-right: 1px solid #e4e4e4;
}
.rpivot-cell-expander {
    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMTFweCIgaGVpZ2h0PSIxMXB4IiB2aWV3Qm94PSIwIDAgMTEgMTEiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+ZXhwYW5kZXItPC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHJlY3QgaWQ9InBhdGgtMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjExIiBoZWlnaHQ9IjExIj48L3JlY3Q+ICAgIDwvZGVmcz4gICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iZXhwYW5kZXItIj4gICAgICAgICAgICA8ZyBpZD0iUmVjdGFuZ2xlIj4gICAgICAgICAgICAgICAgPHVzZSBmaWxsPSIjMjg5MkY3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPiAgICAgICAgICAgICAgICA8cmVjdCBzdHJva2U9IiMyMDgzRTMiIHN0cm9rZS13aWR0aD0iMSIgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCI+PC9yZWN0PiAgICAgICAgICAgIDwvZz4gICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTIiIGZpbGw9IiNGRkZGRkYiIHg9IjMiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjEiPjwvcmVjdD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==);
    background-repeat: no-repeat;
}

.rpivot-cell-bar {
    position: absolute;
    box-sizing: border-box;
    pointer-events: none;
}

/* Icon overlay ---------------------------------------------------------
 * 기본 전략: 셀이 이미 display:flex 이므로 아이콘 span을 텍스트 span과 형제로 두면
 * cell의 justify-content 에 맞춰 자연스럽게 정렬된다.
 *  - auto/left/right: PivotCellView 가 dom 순서로 [icon][text] 또는 [text][icon] 배치.
 *  - start/end:       셀 가장자리에 절대 고정 (텍스트 정렬과 무관).
 *  - center:          iconOnly 일 때 cell justify-content 를 강제로 center.
 *
 * 크기/간격은 cell dom의 CSS 변수로 제어된다 (PivotCellView가 setProperty).
 *  --rpivot-icon-size : 아이콘 정사각형 크기 (기본 14px)
 *  --rpivot-icon-gap  : 아이콘과 텍스트 사이 간격 (기본 4px, start/end edge 위치에도 사용)
 */
.rpivot-cell-icon {
    width: var(--rpivot-icon-size, 14px);
    height: var(--rpivot-icon-size, 14px);
    flex-shrink: 0;
    pointer-events: none;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform: translateY(var(--rpivot-sticky-offset, 0px));
    z-index: 1;
}
/* start/end: 셀 edge 절대 고정. 텍스트는 icon size + gap 만큼 양보.
 * gap fallback은 0px - left/right placement (gap 미지정 시 margin 0)와 동작을 맞춤. */
.rpivot-cell[data-icon-pos="start"] > .rpivot-cell-text {
    margin-left: calc(var(--rpivot-icon-size, 14px) + var(--rpivot-icon-gap, 0px));
}
.rpivot-cell[data-icon-pos="end"] > .rpivot-cell-text {
    margin-right: calc(var(--rpivot-icon-size, 14px) + var(--rpivot-icon-gap, 0px));
}
/* italic + end-icon 교집합에서만 icon margin 에 italic 보정(-0.12em)을 접는다.
 * 특이도 (0,4,0) 으로 위 두 규칙보다 높아 확정적으로 이긴다.
 * 공통 경로(비italic)에는 calc 가 추가되지 않는다. #189 */
.rpivot-cell[data-icon-pos="end"] > .rpivot-cell-text[data-italic] {
    margin-right: calc(var(--rpivot-icon-size, 14px) + var(--rpivot-icon-gap, 0px) - 0.12em);
}
.rpivot-cell[data-icon-pos="start"] > .rpivot-cell-icon,
.rpivot-cell[data-icon-pos="end"]   > .rpivot-cell-icon {
    position: absolute;
    top: 50%;
    transform: translateY(calc(-50% + var(--rpivot-sticky-offset, 0px)));
}
.rpivot-cell[data-icon-pos="start"] > .rpivot-cell-icon { left: 2px; }
.rpivot-cell[data-icon-pos="end"]   > .rpivot-cell-icon { right: 2px; }
/* center: iconOnly 단독 중앙 정렬.
 * [주의] PivotBodyView.css 의 `.rpivot-cell.value-cell { justify-content: flex-end }`
 * 가 specificity 동일하면서 후행 로드되어 우선한다. !important 로 덮어써야 한다. */
.rpivot-cell[data-icon-pos="center"] {
    justify-content: center !important;
}/*//////////////////////////////////////////////////////////////////////////////
// PivotSpotlightView.css
// 2026. 07. 04. created by gslim
// -----------------------------------------------------------------------------
// Copyright (c) 2026 Wooritech Inc.
// All rights reserved.
//////////////////////////////////////////////////////////////////////////////*/

/* 회전 각도를 부드럽게 애니메이션하기 위한 커스텀 속성(aura variant). */
@property --rpivot-spot-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

.rpivot-spotlight {
    --rpivot-spot-color: #4c8dcc;
    --rpivot-spot-bw: 3px;
    --rpivot-spot-dash: 14px;
    border-radius: 3px;
    z-index: 1;
}

/* ---------------------------------------------------------------------------
   flow — marching ants: 점선이 테두리를 따라 흐른다.
   4개의 linear-gradient를 상/하/좌/우 변에 깔고 background-position을 애니메이션.
   --------------------------------------------------------------------------- */
.rpivot-spotlight--flow {
    background-image:
        linear-gradient(90deg, var(--rpivot-spot-color) 50%, transparent 0),
        linear-gradient(90deg, var(--rpivot-spot-color) 50%, transparent 0),
        linear-gradient(0deg, var(--rpivot-spot-color) 50%, transparent 0),
        linear-gradient(0deg, var(--rpivot-spot-color) 50%, transparent 0);
    background-size:
        var(--rpivot-spot-dash) var(--rpivot-spot-bw),
        var(--rpivot-spot-dash) var(--rpivot-spot-bw),
        var(--rpivot-spot-bw) var(--rpivot-spot-dash),
        var(--rpivot-spot-bw) var(--rpivot-spot-dash);
    background-position: 0 0, 0 100%, 0 0, 100% 0;
    background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
    animation: rpivot-spot-march 0.5s linear infinite;
}

@keyframes rpivot-spot-march {
    to {
        background-position:
            var(--rpivot-spot-dash) 0,
            calc(-1 * var(--rpivot-spot-dash)) 100%,
            0 calc(-1 * var(--rpivot-spot-dash)),
            100% var(--rpivot-spot-dash);
    }
}

/* ---------------------------------------------------------------------------
   aura — 회전하는 conic-gradient 글로우 테두리(AI 강조 느낌).
   background(border-box)를 mask(padding-box 제외)로 잘라 테두리 링만 남긴다.
   --------------------------------------------------------------------------- */
.rpivot-spotlight--aura {
    padding: var(--rpivot-spot-bw);
    background:
        conic-gradient(
            from var(--rpivot-spot-angle),
            transparent 0%,
            var(--rpivot-spot-color) 20%,
            transparent 40%,
            transparent 60%,
            var(--rpivot-spot-color) 80%,
            transparent 100%
        ) border-box;
    -webkit-mask:
        linear-gradient(#000 0 0) padding-box,
        linear-gradient(#000 0 0);
    mask:
        linear-gradient(#000 0 0) padding-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: rpivot-spot-spin 2.4s linear infinite;
}

@keyframes rpivot-spot-spin {
    to {
        --rpivot-spot-angle: 360deg;
    }
}

/* 모션 최소화 사용자: 애니메이션을 멈추고 정적 테두리로 대체. */
@media (prefers-reduced-motion: reduce) {
    .rpivot-spotlight--flow,
    .rpivot-spotlight--aura {
        animation: none;
    }
    .rpivot-spotlight--flow {
        background: none;
        border: var(--rpivot-spot-bw) dashed var(--rpivot-spot-color);
    }
}
.rpivot-body-scroll {
    position: absolute;
    inset: 0;
}

.rpivot-body-row {
    position: absolute;
    width: 100%;
    box-sizing: border-box;
}
.rpivot-body-row[data-fixed] {
    z-index: 3;
    background: var(--rpivot-body-row-fixed-bg);
}
.rpivot-body-row[data-fixed-edge="start"] {
    box-shadow: var(--rpivot-body-row-fxied-edge-start);
}
.rpivot-body-row[data-fixed-edge="end"] {
    box-shadow: var(--rpivot-body-row-fxied-edge-end);
}
.rpivot-cell.value-cell,
.rpivot-cell.series-cell {
    height: 100%;
    box-sizing: border-box;
    border-right: var(--rpivot-value-cell-bd);
    border-bottom: var(--rpivot-value-cell-bd);
    padding-left: 2px;
    padding-right: 2px;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: var(--rpivot-value-cell-color);
    background: var(--rpivot-value-cell-bg);
}
.rpivot-cell.value-cell {
    justify-content: flex-end;
}
.rpivot-cell.value-cell[data-vt="d"] {
    background: var(--rpivot-value-cell-d-bg);
    color: var(--rpivot-value-cell-d-color);
}
.rpivot-cell.value-cell[data-vt="g"] {
    background: var(--rpivot-value-cell-g-bg);
    color: var(--rpivot-value-cell-g-color);
    font-weight: bold;
    font-size: 0.9em;
}
.rpivot-cell.value-cell[data-fixed-col],
.rpivot-cell.series-cell[data-fixed-col] {
    z-index: 2;
    background: #f8f8f8 !important;
}
.rpivot-cell.value-cell[data-fixed-col-edge="start"],
.rpivot-cell.series-cell[data-fixed-col-edge="start"] {
    box-shadow: 3px 0 4px 0 rgba(0, 0, 0, 0.15);
}
.rpivot-cell.value-cell[data-fixed-col-edge="end"],
.rpivot-cell.series-cell[data-fixed-col-edge="end"] {
    box-shadow: -3px 0 4px 0 rgba(0, 0, 0, 0.15);
}

/* annotation: level이 지정된 value 셀의 좌상단 코너 삼각형(Excel 코멘트 마커 스타일).
 * paint-only(::before 삼각형)라 레이아웃에 영향이 없고, overflow:hidden으로 코너에 클립된다. */
.rpivot-cell.value-cell[data-anno-level]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-top: 8px solid var(--rpivot-anno-color, #dc3545);
    border-right: 8px solid transparent;
    pointer-events: none;
    z-index: 1;
}
.rpivot-cell.value-cell[data-anno-level="info"] { --rpivot-anno-color: #0d6efd; }
.rpivot-cell.value-cell[data-anno-level="warning"] { --rpivot-anno-color: #fd7e14; }
.rpivot-cell.value-cell[data-anno-level="error"] { --rpivot-anno-color: #dc3545; }

/* annotation: level이 지정된 range 박스의 좌상단 코너 뱃지. 박스 바깥(어깨)으로 살짝 빠진다. */
.rpivot-annotation-badge {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-40%, -40%);
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 15px;
    height: 15px;
    padding: 0 2px;
    box-sizing: border-box;
    border-radius: 3px;
    border: 1px solid #fff;
    background: var(--rpivot-anno-color, #dc3545);
    color: #fff;
    font: 700 10px/1 'Segoe UI', Tahoma, sans-serif;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    pointer-events: auto;
}
.rpivot-annotation-badge[data-level="info"] { --rpivot-anno-color: #0d6efd; }
.rpivot-annotation-badge[data-level="warning"] { --rpivot-anno-color: #fd7e14; }
.rpivot-annotation-badge[data-level="error"] { --rpivot-anno-color: #dc3545; }
/* clip/뷰포트 끝에 잘릴 상황이면 박스 안쪽 좌상단으로 붙인다. */
.rpivot-annotation-badge[data-inside] {
    transform: none;
    top: 1px;
    left: 1px;
}


.rpivot-cell.series-cell {
    padding: 0;
}
.rpivot-series-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rpivot-fixed-row-layer {
    position: absolute;
    left: 0;
    overflow: hidden;
    pointer-events: auto;
    background: var(--rpivot-page-bg-color);
}
.rpivot-fixed-row-layer[data-shadow="start"] {
    box-shadow: 0 3px 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-row-layer[data-shadow="end"] {
    box-shadow: 0 -3px 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-row-layer[data-edged] .rpivot-body-row:first-child .value-cell,
.rpivot-fixed-row-layer[data-edged] .rpivot-body-row:first-child .series-cell {
    border-top: var(--rpivot-value-cell-bd);
}

.rpivot-fixed-col-layer {
    position: absolute;
    top: 0;
    overflow: hidden;
    pointer-events: auto;
    background: var(--rpivot-page-bg-color);
}
.rpivot-fixed-col-layer[data-shadow="start"] {
    box-shadow: 3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-col-layer[data-shadow="end"] {
    box-shadow: -3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-col-layer[data-edged] .rpivot-body-row .value-cell:first-child,
.rpivot-fixed-col-layer[data-edged] .rpivot-body-row .series-cell:first-child {
    border-left: var(--rpivot-value-cell-bd);
}

.rpivot-fixed-corner-layer {
    position: absolute;
    overflow: hidden;
    pointer-events: auto;
    background: #fff;
}
.rpivot-fixed-corner-layer[data-shadow-row="start"] {
    box-shadow: 0 3px 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-shadow-row="end"] {
    box-shadow: 0 -3px 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-shadow-col="start"] {
    box-shadow: 3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-shadow-col="end"] {
    box-shadow: -3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-shadow-row="start"][data-shadow-col="start"] {
    box-shadow: 0 3px 4px 0 rgba(0,0,0,0.15), 3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-shadow-row="start"][data-shadow-col="end"] {
    box-shadow: 0 3px 4px 0 rgba(0,0,0,0.15), -3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-shadow-row="end"][data-shadow-col="start"] {
    box-shadow: 0 -3px 4px 0 rgba(0,0,0,0.15), 3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-shadow-row="end"][data-shadow-col="end"] {
    box-shadow: 0 -3px 4px 0 rgba(0,0,0,0.15), -3px 0 4px 0 rgba(0,0,0,0.15);
}
.rpivot-fixed-corner-layer[data-row-edged] .rpivot-body-row:first-child .value-cell,
.rpivot-fixed-corner-layer[data-row-edged] .rpivot-body-row:first-child .series-cell {
    border-top: var(--rpivot-value-cell-bd);
}
.rpivot-fixed-corner-layer[data-col-edged] .rpivot-body-row .value-cell:first-child,
.rpivot-fixed-corner-layer[data-col-edged] .rpivot-body-row .series-cell:first-child {
    border-left: var(--rpivot-value-cell-bd);
}

.rpivot-focus {
    border: 2px solid black;
}

.rpivot-select {
    border: var(--rpivot-select-bd);
    background: var(--rpivot-select-bg);
}

.rpivot-crosshair-row,
.rpivot-crosshair-col {
    background: var(--rpivot-crosshair-line-bg);
}
.rpivot-crosshair-row[data-gap],
.rpivot-crosshair-col[data-gap] {
    opacity: 0.2;
}
.rpivot-crosshair-row[data-gap] {
    border-top: 1px dotted var(--rpivot-crosshair-gap-bd);
    border-bottom: 1px dotted var(--rpivot-crosshair-gap-bd);
}
.rpivot-crosshair-col[data-gap] {
    border-left: 1px dotted var(--rpivot-crosshair-gap-bd);
    border-right: 1px dotted var(--rpivot-crosshair-gap-bd);
}
.rpivot-header-content {
    position: absolute;
    left: 0;
    top: 0;
    background-color: #f8f8f8;
}
.rpivot-header-total {
    position: absolute;
    left: 0;
    top: 0;
}
.rpivot-header-grand-back {
    position: absolute;
    left: 0;
    top: 0;
    background-color: #f8f8f8;
    z-index: 1;
    pointer-events: none;
}
.rpivot-rowheader {
}
.rpivot-rowheader-content {
    position: absolute;
    left: 0;
    top: 0;
    background-color: #f8f8f8;
}
.rpivot-rowheader-column {
    height: 100%;
    border-right: none;
}
.rpivot-rowheader-cell {
    width: 100%;
    justify-content: center;
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    border-right: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-bg-color);
    color: var(--rpivot-header-color);
    text-align: center;
}
.rpivot-rowheader-cell[data-group] {
    justify-content: flex-start;
}
.rpivot-rowheader-cell[data-selected],
.rpivot-rowheader-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}
.rpivot-rowheader-cell.leaf[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-rowheader-cell.leaf[data-focused],
.rpivot-rowheader-cell.leaf[data-selected] {
    color: var(--rpivot-header-selected-color);
    border-right-color: var(--rpivot-header-selected-leaf-bd-color);
    border-right-width: var(--rpivot-header-selected-leaf-bd-width);
}

.rpivot-rowheader-total {
    position: absolute;
    left: 0;
    top: 0;
}
.rpivot-rowheader-total-cell {
    justify-content: center;
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-total-bg);
    color: var(--rpivot-header-color);
    text-align: center;
}
.rpivot-rowheader-total-cell[data-selected],
.rpivot-rowheader-total-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}
.rpivot-rowheader-total-cell.leaf[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-rowheader-total-cell.leaf[data-focused],
.rpivot-rowheader-total-cell.leaf[data-selected] {
    color: var(--rpivot-header-selected-color);
    border-right-color: var(--rpivot-header-selected-leaf-bd-color);
    border-right-width: var(--rpivot-header-selected-leaf-bd-width);
}
.rpivot-rowheader-total-cell.total-value-cell[data-selected],
.rpivot-rowheader-total-cell.total-value-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
    border-right-color: var(--rpivot-header-selected-leaf-bd-color);
    border-right-width: var(--rpivot-header-selected-leaf-bd-width);
}
.rpivot-rowheader-total-cell.total-value-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-rowheader-grand-cell {
    justify-content: center;
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-grand-bg);
    color: var(--rpivot-header-grand-color);
    text-align: center;
}
.rpivot-rowheader-grand-cell[data-edged] {
    border-top: 1px solid var(--rpivot-header-bd-color);
}
.rpivot-rowheader-grand-cell[data-selected],
.rpivot-rowheader-grand-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}
.rpivot-rowheader-grand-cell.leaf[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-rowheader-grand-cell.leaf[data-focused],
.rpivot-rowheader-grand-cell.leaf[data-selected] {
    color: var(--rpivot-header-selected-color);
    border-right-color: var(--rpivot-header-selected-leaf-bd-color);
    border-right-width: var(--rpivot-header-selected-leaf-bd-width);
}

.rpivot-rowheader-cell.grand-value-cell {
    background-color: var(--rpivot-header-grand-value-bg);
    color: var(--rpivot-header-grand-value-color);
    text-align: center;
}

.rpivot-rowheader-cell.grand-value-cell[data-edged] {
    border-top: 1px solid var(--rpivot-header-bd-color)
}

.rpivot-rowheader-cell.grand-value-cell[data-selected] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}

.rpivot-rowheader-series-cell {
    justify-content: center;
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-grand-bg);
    color: var(--rpivot-header-grand-color);
    text-align: center;
}
.rpivot-rowheader-series-cell[data-selected],
.rpivot-rowheader-series-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
    border-right-color: var(--rpivot-header-selected-leaf-bd-color);
    border-right-width: var(--rpivot-header-selected-leaf-bd-width);
}

.rpivot-rowheader-cell[data-sort="asc"]::after,
.rpivot-rowheader-cell[data-sort="desc"]::after,
.rpivot-rowheader-total-cell[data-sort="asc"]::after,
.rpivot-rowheader-total-cell[data-sort="desc"]::after,
.rpivot-rowheader-cell.grand-value-cell[data-sort="asc"]::after,
.rpivot-rowheader-cell.grand-value-cell[data-sort="desc"]::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 14px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-left: 2px;
    flex-shrink: 0;
}
.rpivot-rowheader-cell[data-sort="asc"]::after,
.rpivot-rowheader-total-cell[data-sort="asc"]::after,
.rpivot-rowheader-cell.grand-value-cell[data-sort="asc"]::after {
    background-image: var(--rpivot-sort-asc);
}
.rpivot-rowheader-cell[data-sort="desc"]::after,
.rpivot-rowheader-total-cell[data-sort="desc"]::after,
.rpivot-rowheader-cell.grand-value-cell[data-sort="desc"]::after {
    background-image: var(--rpivot-sort-desc);
}.rpivot-columnheader {
}
.rpivot-columnheader-content {
    position: absolute;
    left: 0;
    top: 0;
    background-color: var(--rpivot-header-content);
}
.rpivot-columnheader-row {
    position: absolute;
    width: 100%;
    box-sizing: border-box;
}
.rpivot-columnheader-cell {
    justify-content: center;
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-bg-color);
    color: var(--rpivot-header-color);
    text-align: center;
}
.rpivot-columnheader-cell[data-group] {
    justify-content: flex-start;
}
.rpivot-columnheader-cell[data-selected],
.rpivot-columnheader-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}
.rpivot-columnheader-cell.leaf[data-focused] {
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-columnheader-cell.leaf[data-focused],
.rpivot-columnheader-cell.leaf[data-selected] {
    color: var(--rpivot-header-selected-color);
    border-bottom-color: var(--rpivot-header-selected-leaf-bd-color);
    border-bottom-width: var(--rpivot-header-selected-leaf-bd-width);
}

.rpivot-columnheader-total {
    position: absolute;
    left: 0;
    top: 0;
}
.rpivot-columnheader-total-cell {
    justify-content: center;
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-total-bg);
    color: var(--rpivot-header-color);
    text-align: center;
}
.rpivot-columnheader-total-cell[data-selected],
.rpivot-columnheader-total-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}
.rpivot-columnheader-total-cell.leaf[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-columnheader-total-cell.leaf[data-focused],
.rpivot-columnheader-total-cell.leaf[data-selected] {
    color: var(--rpivot-header-selected-color);
    border-bottom-color: var(--rpivot-header-selected-leaf-bd-color);
    border-bottom-width: var(--rpivot-header-selected-leaf-bd-width);
}
.rpivot-columnheader-total-cell.total-value-cell[data-selected],
.rpivot-columnheader-total-cell.total-value-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
    border-bottom-color: var(--rpivot-header-selected-leaf-bd-color);
    border-bottom-width: var(--rpivot-header-selected-leaf-bd-width);
}
.rpivot-columnheader-total-cell.total-value-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}

.rpivot-columnheader-grand-cell {
    justify-content: center;
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-grand-bg);
    color: var(--rpivot-header-grand-color);
    text-align: center;
}
.rpivot-columnheader-grand-cell[data-edged] {
    border-left: 1px solid var(--rpivot-header-bd-color);
}
.rpivot-columnheader-grand-cell[data-selected],
.rpivot-columnheader-grand-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}
.rpivot-columnheader-grand-cell.leaf[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-columnheader-grand-cell.leaf[data-focused],
.rpivot-columnheader-grand-cell.leaf[data-selected] {
    color: var(--rpivot-header-selected-color);
    border-bottom-color: var(--rpivot-header-selected-leaf-bd-color);
    border-bottom-width: var(--rpivot-header-selected-leaf-bd-width);
}

.rpivot-columnheader-cell.grand-value-cell {
    background-color: var(--rpivot-header-grand-value-bg);
    color: var(--rpivot-header-grand-value-color);
    text-align: center;
}
.rpivot-columnheader-cell.grand-value-cell[data-edged] {
    border-left: 1px solid var(--rpivot-header-bd-color)
}
.rpivot-columnheader-cell.grand-value-cell[data-selected] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
}

.rpivot-columnheader-series-cell {
    justify-content: center;
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: var(--rpivot-header-grand-bg);
    color: var(--rpivot-header-grand-color);
    text-align: center;
}

.rpivot-columnheader-series-cell[data-selected],
.rpivot-columnheader-series-cell[data-focused] {
    color: var(--rpivot-header-selected-color);
    background-color: var(--rpivot-header-selected-bg);
    border-bottom-color: var(--rpivot-header-selected-leaf-bd-color);
    border-bottom-width: var(--rpivot-header-selected-leaf-bd-width);
}

.rpivot-columnheader-cell[data-sort="asc"]::after,
.rpivot-columnheader-cell[data-sort="desc"]::after,
.rpivot-columnheader-total-cell[data-sort="asc"]::after,
.rpivot-columnheader-total-cell[data-sort="desc"]::after,
.rpivot-columnheader-cell.grand-value-cell[data-sort="asc"]::after,
.rpivot-columnheader-cell.grand-value-cell[data-sort="desc"]::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 14px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-left: 2px;
    flex-shrink: 0;
}

.rpivot-columnheader-cell[data-sort="asc"]::after,
.rpivot-columnheader-total-cell[data-sort="asc"]::after,
.rpivot-columnheader-cell.grand-value-cell[data-sort="asc"]::after {
    background-image: var(--rpivot-sort-asc);
}
.rpivot-columnheader-cell[data-sort="desc"]::after,
.rpivot-columnheader-total-cell[data-sort="desc"]::after,
.rpivot-columnheader-cell.grand-value-cell[data-sort="desc"]::after {
    background-image: var(--rpivot-sort-desc);
}.rpivot-field {
    align-items: center;
    gap: 1px;
    padding: 4px 6px;
    border-radius: 3px;
    font-size: 13px;
    font-weight: 700;
    background-color: var(--rpivot-fieldbar-bg);
    color: var(--rpivot-fieldbar-color);
}
.rpivot-field span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rpivot-field:hover,
.rpivot-field[data-menu="true"] {
    background-color: #d8d8d8;
}
.rpivot-column-field .rpivot-field-menu,
.rpivot-row-field .rpivot-field-menu {
    width: 13px;
    height: 13px;
    margin-left: auto;
    flex-shrink: 0;
    border: none;
    border-radius: 0;
    background-color: transparent;
    background-image: var(--rpivot-field-menu-bg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    mask-image: none;
    -webkit-mask-image: none;
    cursor: pointer;
}
.rpivot-column-field .rpivot-field-menu:hover,
.rpivot-row-field .rpivot-field-menu:hover,
.rpivot-column-field .rpivot-field-menu[data-menu="true"],
.rpivot-row-field .rpivot-field-menu[data-menu="true"] {
    background-image: var(--rpivot-field-menu-hover-bg);
}
.rpivot-field-sort {
    width: 6px;
    height: 13px;
    margin-left: 2px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-field-sort[data-dir="asc"] {
    background-image: var(--rpivot-sort-asc);
}
.rpivot-field-sort[data-dir="desc"] {
    background-image: var(--rpivot-sort-desc);
}
/** value field */
.rpivot-value-field .rpivot-field-menu {
    width: 12px;
    height: 12px;
    margin-left: -1px;
    margin-top: -1px;
    flex-shrink: 0;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='2 2 16 20'%3E%3Cpath d='M6 4h12v2H9.5l4.5 6-4.5 6H18v2H6v-2l5.5-6L6 6z' fill='%23446'/%3E%3C/svg%3E");    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-value-field-agg {
    padding: 0px 3px;
    font-size: 11px;
    font-weight: normal;
    color: #585;
}
.rpivot-value-field-agg:hover {
    color: #111;
}
.rpivot-value-field:hover .rpivot-field-menu,
.rpivot-value-field .rpivot-field-menu[data-menu="true"] {
    background-image: var(--rpivot-field-menu-hover-bg);
}
/** filter field */
.rpivot-filter-field .rpivot-field-menu {
    width: 13px;
    height: 13px;
    margin-left: -1px;
    cursor: pointer;
    background-image: var(--rpivot-filter-bg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-filter-field.active .rpivot-field-menu {
    background-image: var(--rpivot-filtered-bg);
}
.rpivot-filter-field:hover .rpivot-field-menu,
.rpivot-filter-field .rpivot-field-menu[data-menu="true"] {
    background-image: var(--rpivot-field-menu-hover-bg);
}
.rpivot-filter-field-item {
    padding: 0px 3px;
    font-size: 11px;
    font-weight: normal;
    color: #585;
}
.rpivot-filter-field-item:hover {
    color: #111;
}.rpivot-fieldbar {
    background: var(--rpivot-fieldbar-bg);
}
.rpivot-fieldbar-divider {
    width: 0px;
    height: 60%;
    border-left: 1px solid var(--rpivot-bar-divider-color);
}.rpivot-rowbar {
    align-items: flex-end;
    border-bottom: 1px solid var(--rpivot-fieldbar-bd-color);
}
.rpivot-rowbar-edge {
    background-color: var(--rpivot-fieldbar-bd-color);
}
.rpivot-rowbar .rpivot-fieldbar-divider {
    margin-left: -1px;
    z-index: 100;
}

.rpivot-rowbar-head {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 3px 3px;
    font-size: 12px;
    color: #556;
}
.rpivot-rowbar button {
    display: flex;
    align-items: center;
    gap: 1px;
    border: 1px solid transparent;
    border-radius: 3px;
    cursor: pointer;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background-size: 14px 14px;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
}
.rpivot-rowbar button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
/* .rpivot-rowbar-head button.active {
    background-color: #e0e0e0;
    border: 1px solid #d0d0d0;
} */
.rpivot-rowbar-head button:hover {
    background-color: var(--rpivot-rowbar-button-hover-bg);
}
.rpivot-rowbar-menu {
    background-image: var(--rpivot-menu-bg);
}
/* .rpivot-rowbar-databar {
    background-image: var(--rpivot-databar-bg);
}
.rpivot-rowbar-heatmap {
    background-image: var(--rpivot-heatmap-bg);
} */
 /* .rpivot-rowbar-settings {
    background-image: var(--rpivot-table-settings-bg);
}
.rpivot-rowbar-theme {
    background-image: var(--rpivot-theme-bg);
} */
.rpivot-values-as-rows {
    background-image: var(--rpivot-values-as-rows-bg);
}
.rpivot-values-as-rows.active {
    background-image: var(--rpivot-values-as-rows-active-bg);
}    
.rpivot-rowbar-crosshair {
    background-image: var(--rpivot-crosshair-bg);
}
.rpivot-rowbar-crosshair.active {
    background-color: var(--rpivot-rowbar-crosshair-active-bg);
    border: var(--rpivot-rowbar-crosshair-active-bd);
}
/* .rpivot-rowbar-tree {
    background-image: var(--rpivot-grid-layout-bg);
}
.rpivot-rowbar-tree.active {
    background-image: var(--rpivot-tree-layout-bg);
} */

.rpivot-rowbar .rpivot-fieldbar-valuelayer {
    border-left: var(--rpivot-rowbar-value-divider);
}

/* .rpivot-rowbar-title {
    font-size: 12px;
    color: #446;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 2px;
} */

/* .rpivot-rowbar-countlayer {
    padding: 6px 2px;
    font-size: 12px;
    font-family: Arial;
    color: #556;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 3px;
}
.rpivot-rowbar-countlayer::before {
    content: '';
    width: 12px;
    height: 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='0.5' y='0.5' width='13' height='13' rx='1' fill='none' stroke='%23778' stroke-width='1'/%3E%3Cline x1='0.5' y1='4.5' x2='13.5' y2='4.5' stroke='%23778' stroke-width='0.7'/%3E%3Cline x1='0.5' y1='7.5' x2='13.5' y2='7.5' stroke='%23778' stroke-width='0.7'/%3E%3Cline x1='0.5' y1='10.5' x2='13.5' y2='10.5' stroke='%23778' stroke-width='0.7'/%3E%3Cline x1='5' y1='0.5' x2='5' y2='13.5' stroke='%23778' stroke-width='0.7'/%3E%3Cline x1='9.5' y1='0.5' x2='9.5' y2='13.5' stroke='%23778' stroke-width='0.7'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}
.rpivot-rowbar-countlayer:hover {
    color: #226;
    background-color: #d8d8d8;
    text-decoration: underline;
} */

.rpivot-rowbar-filler {
    box-sizing: border-box;
    border-bottom: 1px solid var(--rpivot-fieldbar-bd-color);
}.rpivot-columnbar {
    display: flex;
    gap: 4px;
    align-items: center;
    padding: 4px 1px;
    border-bottom: 1px solid var(--rpivot-fieldbar-bd-color);
}

.rpivot-column-field .rpivot-field-menu {
    margin-left: 4px;
}
.rpivot-columnbar .rpivot-column-agg {
    padding: 0px 2px;
    font-size: 11px;
    font-weight: normal;
    color: #555;
}
.rpivot-columnbar .rpivot-fieldbar-fieldlayer {
    gap: 2px;
}   
.rpivot-columnbar .rpivot-fieldbar-valuelayer {
    gap: 2px;
}

.rpivot-columnbar-menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 24px;
    margin-left: auto;
    margin-right: 4px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 4px;
    background-image: var(--rpivot-menu-bg);
    background-size: 13px 13px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-columnbar-menu:hover {
    background-color: #e0e0e0;
}.rpivot-treeheader {
}
.rpivot-treeheader-cells {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
}
.rpivot-tree-cell {
    width: 100%;
    justify-content: flex-start;
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    border-right: 1px solid var(--rpivot-header-bd-color);
    background-color: #fafafa;
}
.rpivot-tree-cell-measure {
    margin-left: auto;
    padding-left: 8px;
    padding-right: 8px;
    transform: translateY(var(--rpivot-sticky-offset, 0px));
}
.rpivot-tree-cell[data-group]::before {
    left: var(--rpivot-tree-indent, 4px);
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='10' height='10' rx='1' fill='none' stroke='%23333'/%3E%3Crect x='3' y='5' width='5' height='1' fill='%23333'/%3E%3C/svg%3E");
}
.rpivot-tree-cell[data-group][data-collapsed]::before {
    background-image: url("data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='.5' y='.5' width='10' height='10' rx='1' fill='none' stroke='%23333'/%3E%3Crect x='3' y='5' width='5' height='1' fill='%23333'/%3E%3Crect x='5' y='3' width='1' height='5' fill='%23333'/%3E%3C/svg%3E");
}
.rpivot-tree-cell[data-total] {
    background-color: #f0f0f0;
}
.rpivot-tree-cell[data-grand] {
    background-color: #e8e8e8;
    font-weight: bold;
}
.rpivot-tree-cell[data-selected],
.rpivot-tree-cell[data-focused] {
    background-color: var(--rpivot-header-selected-bg);
}
.rpivot-tree-cell[data-focused] {
    background-color: var(--rpivot-header-focused-bg);
    font-weight: bold;
}
.rpivot-treeheader-total {
    position: absolute;
    left: 0;
    top: 0;
}
.rpivot-tree-grand-cell {
    width: 100%;
    justify-content: center;
    /* border-top: 1px solid var(--rpivot-header-bd-color); */
    border-right: 1px solid var(--rpivot-header-bd-color);
    border-bottom: 1px solid var(--rpivot-header-bd-color);
    background-color: #f0f0f0;
    color: #111;
}
.rpivot-tree-grand-cell[data-selected],
.rpivot-tree-grand-cell[data-focused] {
    background-color: var(--rpivot-header-selected-bg);
}.rpivot-view {
    position: relative;
    font-size: 11px;
    overflow:hidden;
}
.rpivot-header-filler {
    box-sizing: border-box;
    background: var(--rpivot-header-filler-bg, #f8f8f8);
}
.rpivot-header-filler.border-top {
    border-top: 1px solid var(--rpivot-header-filler-bd-color, #ddd);
}
.rpivot-header-filler.border-left {
    border-left: 1px solid var(--rpivot-header-filler-bd-color, #ddd);
}
.rpivot-empty-table {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 100%;
    height: 100%;
    color: #999;
    font-size: 13px;
    text-align: center;
    background: #f5f5f5;
    user-select: none;
}
.rpivot-empty-table .empty-hint {
    display: grid;
    grid-template-columns: 60px 1fr 1fr;
    grid-template-rows: 24px 20px 20px;
    gap: 1px;
    width: 220px;
    background: #ddd;
    border: 1px solid #ddd;
}
.rpivot-empty-table .empty-hint .h-corner { background: #e8e8e8; }
.rpivot-empty-table .empty-hint .h-col {
    background: #e8e8e8;
    display: flex; align-items: center; justify-content: center;
    font-size: 10px; color: #999;
}
.rpivot-empty-table .empty-hint .h-row {
    background: #e8e8e8;
    display: flex; align-items: center; justify-content: center;
    font-size: 10px; color: #999;
}
.rpivot-empty-table .empty-hint .h-val { 
    background: #fff; 
    display: flex; align-items: center; justify-content: center;
    font-size: 10px; color: #aab;
}
.rpivot-empty-table .empty-message {
    font-size: 20px;
}
.rpivot-empty-table .empty-logo {
    font-size: 13px;
}
.rpivot-tooltip {
    min-width: 90px;
    background-color: #f4f9ff;
    color: #333;
    font-size: 12px;
    line-height: 1.4;
    padding: 6px 8px;
    /* border: 1px solid #7aaff8; */
    border: 1px solid #777;   
    border-radius: 4px;
    /* box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.15); */
    box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.25);
}.rg-dialog-overlay {
    background-color: var(--rpivot-dialog-overlay-bg);
}.rg-ctx-menu__item {
    font-size: 10px;
}

.rpivot-empty-book {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    width: 100%;
    height: 100%;
    color: #999;
    font-size: 17px;
    line-height: 0.5;
    text-align: center;
    background: 
        radial-gradient(ellipse at center, #fafafa 0%, #f0f0f0 100%),
        linear-gradient(90deg, #e8e8e8 1px, transparent 1px) 0 0 / 40px 40px,
        linear-gradient(#e8e8e8 1px, transparent 1px) 0 0 / 40px 40px;
    user-select: none;
}
.rpivot-empty-book::before {
    content: '';
    width: 64px;
    height: 64px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ccc' stroke-width='1.5'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
    background-size: contain;
    opacity: 0.6;
    animation: rpivot-empty-pulse 2s ease-in-out infinite;
}
@keyframes rpivot-empty-pulse {
    0%, 100% { opacity: 0.4; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(1.05); }
}
.rpivot-empty-book span {
    color: #888;
    font-size: 13px;
}
.rpivot-empty-book small {
    color: #aaa;
    font-size: 12px;
}

.rpivot-ai-popup {
    background-color: #00000010;
}.rdata-grid {
    --header-cell-bd: #d4d4d8;
    --header-cell-focused-bg: #dde;
    --header-cell-focused-bd: #558;
    --header-cell-selected-bg: #dde8;
}
.rdata-grid {
    background-color: #f8f8f8;
    font-size: 11px;
}
.rdata-grid-head-cell {
    background-color: #f8fafc;
}
.rdata-grid-cell {
    display: flex;
    align-items: center;
    position: absolute;
    box-sizing: border-box;
    overflow: hidden;
}
.rdata-grid-cell > span {
    flex: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
.rdata-grid-column-header .rdata-grid-cell,
.rdata-grid-head-cell {
    padding: 5px 2px;
    justify-content: center;
    text-align: center;
    font-weight: bold;
    border-right: 1px solid var(--header-cell-bd);
    border-bottom: 1px solid var(--header-cell-bd);
    border-top: 1px solid var(--header-cell-bd);
    background-color: #f8fafc;
    color: #333;
}
.rdata-grid-column-header .rdata-grid-cell.focused {
    background-color: var(--header-cell-focused-bg);
    border-bottom-color: var(--header-cell-focused-bd);
    box-shadow: inset 0 -1px 0 var(--header-cell-focused-bd);
}
.rdata-grid-column-header .rdata-grid-cell.selected {
    background-color: var(--header-cell-selected-bg);
}

.rdata-grid-row-header .rdata-grid-cell {
    padding: 2px;
    justify-content: center;
    text-align: center;
    font-weight: bold;
    border-right: 1px solid var(--header-cell-bd);
    border-bottom: 1px solid var(--header-cell-bd);
    background-color: #f8fafc;
    font-size: 10px;
    color: #333;
}
.rdata-grid-row-header .rdata-grid-cell.focused {
    background-color: var(--header-cell-focused-bg);
    border-right: 2px solid var(--header-cell-focused-bd);
}
.rdata-grid-row-header .rdata-grid-cell.selected {
    background-color: var(--header-cell-selected-bg);
}

.rdata-grid-footer .rdata-grid-cell {
    padding: 5px 2px;
    justify-content: center;
    text-align: center;
    font-weight: bold;
    border-right: 1px solid var(--header-cell-bd);
    border-top: 1px solid var(--header-cell-bd);
    border-bottom: 1px solid var(--header-cell-bd);
    background-color: #f8fafc;
    color: #333;
}
.rdata-grid-foot-cell {
    border-right: 1px solid var(--header-cell-bd);
    border-top: 1px solid var(--header-cell-bd);
    border-bottom: 1px solid var(--header-cell-bd);
    background-color: #f8fafc;
}

.rdata-grid-focus {
    border: 2px solid #333;
}

.rdata-grid-select {
    border: 1px solid #333;
    background: #3331;
    /* border: 2px solid #080;
    background-color: #0088000a; */
}

.rdata-grid-body .rdata-grid-cell {
    padding: 2px;
    border-right: 1px solid #e0e0e5;
    border-bottom: 1px solid #e0e0e5;
    text-align: center;
    background-color: white;
}
.rdata-grid-body .rdata-grid-cell[data-type="number"] {
    text-align: right;
}

.rdata-grid-row.odd .rdata-grid-cell {
    background-color: #fafafd;
}

/* Fixed pane shadows */
.rdata-grid-fixed-row[data-shadow="top"] {
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.rdata-grid-fixed-row[data-shadow="bottom"] {
    box-shadow: 0 -2px 6px rgba(0,0,0,0.15);
}
.rdata-grid-fixed-col[data-shadow="left"] {
    box-shadow: 2px 0 6px rgba(0,0,0,0.15);
}
.rdata-grid-fixed-col[data-shadow="right"] {
    box-shadow: -2px 0 6px rgba(0,0,0,0.15);
}

.rdata-grid-fixed-row .rdata-grid-cell,
.rdata-grid-fixed-col .rdata-grid-cell,
.rdata-grid-fixed-corner .rdata-grid-cell {
    background-color: white;
}
.rdata-grid-fixed-row .rdata-grid-row.odd .rdata-grid-cell,
.rdata-grid-fixed-col .rdata-grid-row.odd .rdata-grid-cell,
.rdata-grid-fixed-corner .rdata-grid-row.odd .rdata-grid-cell {
    background-color: #f7f7fa;
}.rdata-filter-selector {
    font-size: 13px;
    gap: 6px;
}
.rdata-filter-selector[disabled] {
    opacity: 0.5;
    pointer-events: none;
    cursor: not-allowed;
}
.rdata-filter-selector.simple {
    flex-direction: row;
    gap: 2px;
    font-size: 13px;
    min-width: 20px;
}
.rdata-filter-selector-title {
    gap: 2px;
    align-items: center;
    font-size: 12px;
    white-space: nowrap;
}
.rdata-filter-selector-title-icon {
    width: 14px;
    height: 14px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 14px 14px;
    background-image: var(--rdata-filter-bg, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M1 2h12L8.5 8v5l-3 1.5V8z' fill='%23bbb' stroke='none' stroke-width='1.5'/%3E%3C/svg%3E"));
    flex-shrink: 0;
}
.rdata-filter-selector-title-icon.active {
    background-image: var(--rdata-filtered-bg, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M1 2h12L8.5 8v5l-3 1.5V8z' fill='%23777'/%3E%3C/svg%3E"));
}
.rdata-filter-selector-title-icon:hover {
    background-image: var(--rdata-field-menu-hover-bg, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline points='4,6 8,10 12,6' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"));
}
.rdata-filter-selector-title-text {
    font-size: 13px;
    font-weight: bold;
    color: var(--rdata-filter-selector-title-text-color, #555);
}
.rdata-filter-selector-title-count {
    color: var(--rdata-filter-selector-title-count-color, #111);
}
.rdata-filter-selector-title-line {
    flex: 1 1 0px;
    height: 1px;
    background-color: #ddd;
}
.rdata-filter-selector-summary {
    font-size: 12px;
    color: #888;
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 2px 8px 4px;
}
.rdata-filter-selector-title-expander {
    width: 16px;
    height: 16px;
    border: none;
    background: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
    /* triangle-down (filled) */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4z' fill='%23666'/%3E%3C/svg%3E");
}
.rdata-filter-selector-title-expander:hover {
    background-color: rgba(0, 0, 0, 0.05);
    border-radius: 3px;
}
.rdata-filter-selector-title-expander[data-collapsed] {
    /* triangle-right (filled) */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 4l4 4-4 4z' fill='%23666'/%3E%3C/svg%3E");
}

/* Simple panel: scrollable list + button bar */
.rdata-simple-panel-list {
    max-height: 200px;
    overflow-y: auto;
}
.rdata-simple-panel-btnbar {
    display: flex;
    justify-content: flex-end;
    gap: 4px;
    padding: 9px 6px;
    border-top: 1px solid #eee;
}
.rdata-simple-panel-btnbar button {
    font-size: 12px;
    padding: 4px 10px;
    border: 1px solid #ccc;
    border-radius: 3px;
    cursor: pointer;
    background: white;
}
.rdata-simple-panel-btnbar button:hover {
    background: #f0f0f0;
}
.rdata-simple-panel-btnbar .rdata-simple-panel-apply {
    color: white;
    background-color: #0078d4;
    border-color: #0078d4;
}
.rdata-simple-panel-btnbar .rdata-simple-panel-apply:hover {
    background: #106ebe;
    border-color: #106ebe;
}
.rdata-simple-panel-btnbar .rdata-simple-panel-apply:disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}
/* NodeView 스타일. */
.rs-node {
    border: 1px solid #888;
    border-radius: 4px;
    background: #fff;
    font-size: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .1);
    user-select: none;
    overflow: hidden;
}
.rs-node-header {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    background: #f0f0f0;
    border-bottom: 1px solid #ddd;
    font-weight: 600;
}
.rs-node-toggle {
    cursor: pointer;
    font-size: 10px;
    line-height: 1;
    padding: 2px 4px;
    border-radius: 2px;
    user-select: none;
}
.rs-node-toggle:hover { background: rgba(0, 0, 0, .08); }
.rs-node-title {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rs-node-resizer {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 10px;
    height: 10px;
    cursor: nwse-resize;
    opacity: 0;
    transition: opacity .12s;
    background: linear-gradient(135deg, transparent 60%, rgba(0, 0, 0, .35) 60%, rgba(0, 0, 0, .35) 70%, transparent 70%);
}
.rs-node:hover .rs-node-resizer { opacity: .6; }
.rs-node-resizer:hover { opacity: 1; }
.rs-node--collapsed .rs-node-columns { padding-bottom: 2px; }

.rs-node-table {
    padding: 4px 8px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    color: #555;
    border-bottom: 1px dashed #eee;
}
.rs-node-columns {
    padding: 2px 0 4px 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11px;
}
.rs-node-col {
    display: flex;
    align-items: center;
    padding: 1px 8px;
    height: 18px;
    cursor: grab;
    color: #333;
}
.rs-node-col:hover { background: #f5faff; }
.rs-node-col-name { user-select: none; }
.rs-node-col--dragging { opacity: .5; }

.rs-node--fact { border-color: #c0392b; }
.rs-node--fact .rs-node-header {
    background: #fdecea;
    color: #c0392b;
}
.rs-node--dimension { border-color: #2980b9; }
.rs-node--dimension .rs-node-header {
    background: #eaf2fb;
    color: #2980b9;
}

.rs-node--droptarget {
    outline: 1px dashed rgba(41, 128, 185, .45);
    outline-offset: 1px;
}
.rs-node--fact.rs-node--selected {
    box-shadow: 0 0 0 2px #c0392b, 0 1px 3px rgba(0, 0, 0, .1);
}
.rs-node--dimension.rs-node--selected {
    box-shadow: 0 0 0 2px #2980b9, 0 1px 3px rgba(0, 0, 0, .1);
}

/* 선택된 엣지의 FK/PK 컬럼 행 강조 */
.rs-node-col--highlighted {
    background: rgba(10, 132, 255, .14);
    background: color-mix(in srgb, AccentColor 18%, transparent);
    box-shadow: inset 3px 0 0 #0a84ff;
    box-shadow: inset 3px 0 0 AccentColor;
    font-weight: 600;
}
/* drop 후보가 된 컬럼 행은 강하게 강조 */
.rs-node-col--droptarget {
    background: #d6eaff !important;
    box-shadow: inset 3px 0 0 #2ecc71, inset -3px 0 0 #2ecc71;
}
/* drag 중 cursor가 올라간 PK 후보 컬럼을 강조 (fallback) */
.rs-node--droptarget .rs-node-col:hover { background: #d6eaff; }
/* EdgeView 스타일. */
.rs-edge { color: #999; }
.rs-edge svg text {
    fill: #333;
    paint-order: stroke;
    stroke: #fff;
    stroke-width: 3px;
    stroke-linejoin: round;
}
.rs-edge--selected line,
.rs-edge--selected polyline,
.rs-edge--selected path {
    stroke: #0a84ff !important;
    stroke: AccentColor !important;
    stroke-width: 2.5 !important;
}
.rs-edge--selected text { fill: #0a84ff !important; fill: AccentColor !important; }
/* BodyView 캔버스 영역. */
.rs-body {
    background-image:
        linear-gradient(to right, #eee 1px, transparent 1px),
        linear-gradient(to bottom, #eee 1px, transparent 1px);
    background-size: 20px 20px;
}
/* EditView 전용 스타일 (현재 추가 스타일 없음). */
.rstar-view { outline: none; }
/* StarEditor 전역(공통) 스타일. */
.rstar-control {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    color: #333;
}
.rstar-content-layer { background: transparent; }
.rdata-button-selector {
    display: flex;
    flex-direction: column;
}
.rdata-button-selector.simple {
    width: 'auto';
    flex: 1 0 auto;
    overflow: hidden;
}

.rdata-button-selector-container {
    display: flex;
    gap: 4px;
    padding: 6px;
    margin-left: 10px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background-color: #fafafa;
    font-size: 12px;
}
.rdata-button-selector.simple .rdata-button-selector-container {
    padding: 2px;
    margin-left: 0;
    font-size: 12px;
    overflow: auto hidden;
}

/* simple 모드: 한 줄, 화살표 스크롤 */
.rdata-button-selector-container.simple {
    flex: 1;
    min-width: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none; /* Firefox */
}
.rdata-button-selector-container.simple::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
}

/* 화살표 버튼 */
.rdata-button-selector-arrow {
    flex: 0 0 auto;
    width: 12px;
    height: 100%;
    padding: 0;
    border: none;
    background: transparent no-repeat center / 14px 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rdata-button-selector-arrow:hover {
    background-color: rgba(0, 0, 0, 0.06);
    border-radius: 2px;
}
.rdata-button-selector-arrow.left {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10 3L5 8l5 5z' fill='%23666'/%3E%3C/svg%3E");
}
.rdata-button-selector-arrow.right {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 3l5 5-5 5z' fill='%23666'/%3E%3C/svg%3E");
}
.rdata-button-selector-arrow:disabled {
    cursor: default;
    opacity: 0.25;
}

/* wrap 모드: 여러 줄 */
.rdata-button-selector-container.wrap {
    flex-wrap: wrap;
}

.rdata-button-selector-button {
    padding: 4px 10px;
    font-size: inherit;
    font-family: inherit;
    border: 1px solid #bbb;
    border-radius: 3px;
    background-color: white;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
    user-select: none;
}
.rdata-button-selector-button:hover {
    background-color: #e8e8e8;
    border-color: #999;
}
.rdata-button-selector-button:active {
    background-color: #d0d0d0;
}
.rdata-button-selector-button.selected {
    background-color: #0078d4;
    border-color: #0078d4;
    color: white;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
}
.rdata-button-selector-button.selected:hover {
    background-color: #006cbd;
    border-color: #006cbd;
}
.rdata-button-selector.simple .rdata-button-selector-button {
    padding: 1px 2px;
}
.rdata-dropdown-selector {
    display: flex;
    flex-direction: column;
}
.rdata-dropdown-selector.simple {
    width: auto;
    flex-shrink: 0;
}

.rdata-dropdown-selector-listbox {
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 4px;
    border: 1px solid #ccc;
    border-radius: 3px;
    max-height: 200px;
    background-color: white;
    margin-left: 10px;
    margin-right: 5px;
    width: calc(100% - 15px);
}

.rdata-dropdown-selector-listbox-item {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 2px;
    user-select: none;
}

.rdata-dropdown-selector-listbox-item:hover {
    background: #f0f0f0;
}

.rdata-dropdown-selector-listbox-item input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
}

.rdata-dropdown-selector-listbox-item span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Simple mode: custom dropdown with checkboxes */
.rdata-dropdown-simple-btn {
    box-sizing: border-box;
    width: auto;
    font-size: 12px;
    font-family: inherit;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 2px 20px 2px 4px;
    outline: none;
    background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 2px center / 14px 14px;
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #333;
}
.rdata-dropdown-simple-btn:focus {
    border-color: #0078d4;
}
.rdata-dropdown-simple-panel {
    position: fixed;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.rdata-dropdown-simple-item {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px 6px;
    font-size: 12px;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
.rdata-dropdown-simple-item:hover {
    background: #f0f0f0;
}
.rdata-dropdown-simple-item.all {
    border-bottom: 1px solid #eee;
    margin-bottom: 2px;
}
.rdata-dropdown-simple-item input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
}
.rdata-dropdown-simple-item span {
    overflow: hidden;
    text-overflow: ellipsis;
}
.rdata-timeline-selector {
    display: flex;
    flex-direction: column;
}

.rdata-timeline-selector.simple {
    width: auto;
    flex: 1 0 auto;
}

.rdata-timeline-container {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    width: 100%;
    box-sizing: border-box;
}

/* Header: range label + clear button */
.rdata-timeline-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 22px;
}

.rdata-timeline-range-label {
    font-size: 12px;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}
.rdata-timeline-range-label.empty {
    color: #999;
    font-weight: 400;
}

.rdata-timeline-clear-btn {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 13px;
    color: #888;
    padding: 2px 4px;
    line-height: 1;
    border-radius: 3px;
}

.rdata-timeline-clear-btn svg {
    display: block;
}

.rdata-timeline-clear-btn:disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}

.rdata-timeline-clear-btn:hover {
    background: #e8e8e8;
    color: #333;
}

/* Close (dropdown) button - simple mode only */
.rdata-timeline-close-btn {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 13px;
    color: #888;
    padding: 2px 4px;
    line-height: 1;
    border-radius: 3px;
    margin-left: 2px;
}

.rdata-timeline-close-btn:hover {
    background: #e8e8e8;
    color: #333;
}

/* Unit bar (Years | Quarters | Months | Days) */
.rdata-timeline-unitbar {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 4px;
}

.rdata-timeline-unit-btn {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 11px;
    color: #666;
    padding: 3px 8px;
    border-radius: 3px;
    transition: background 0.15s, color 0.15s;
}

.rdata-timeline-unit-btn:hover {
    background: #e8e8e8;
    color: #333;
}

.rdata-timeline-unit-btn.active {
    background: #0078d4;
    color: white;
}

/* Scroll area */
.rdata-timeline-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 0;
}

/* 'days' 등 세로 그리드 레이아웃에서는 가로 스크롤이 불필요하다. */
.rdata-timeline-scroll.vertical {
    overflow-x: hidden;
}

/* Block container */
.rdata-timeline-blocks {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0;
}

/* Group label (year separator) */
.rdata-timeline-group {
    display: flex;
    align-items: flex-end;
    font-size: 10px;
    color: #999;
    padding: 0 4px 2px 4px;
    border-left: 1px solid #ddd;
    margin-left: 2px;
    white-space: nowrap;
    user-select: none;
}

/* Collapsible group wrapper (days unit) */
.rdata-timeline-group-wrapper {
    width: 100%;
}

.rdata-timeline-group.collapsible {
    cursor: pointer;
    width: 100%;
    padding: 4px 8px 2px 4px;
    border-left: none;
    margin-left: 0;
}

.rdata-timeline-group.collapsible::before {
    content: '\25BE';
    margin-right: 4px;
    font-size: 9px;
    transition: transform 0.15s;
}

.rdata-timeline-group-wrapper.collapsed .rdata-timeline-group.collapsible::before {
    transform: rotate(-90deg);
}

.rdata-timeline-group-blocks {
    display: grid;
    grid-template-columns: repeat(auto-fill, 36px);
    justify-content: center;
}

.rdata-timeline-group-wrapper.collapsed .rdata-timeline-group-blocks {
    display: none;
}

/* Individual period block */
.rdata-timeline-block {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 28px;
    font-size: 11px;
    color: #555;
    background: #f5f5f5;
    border: 1px solid #e0e0e0;
    margin: 0 -1px -1px 0;
    cursor: pointer;
    user-select: none;
    transition: background 0.1s;
    box-sizing: border-box;
}

.rdata-timeline-block:hover {
    background: #e5f1fb;
}

.rdata-timeline-block.selected {
    background: #0078d4;
    color: white;
    border-color: #005a9e;
    position: relative;
    z-index: 1;
}

/* =========================== */
/* Calendar layout (days)      */
/* =========================== */

.rdata-timeline-blocks.calendar {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
}

/* Month wrapper (collapsible) */
.rdata-timeline-cal-month-wrapper {
}

.rdata-timeline-cal-month-wrapper.collapsed .rdata-timeline-cal-month-body {
    display: none;
}

/* Month header */
.rdata-timeline-cal-month {
    font-size: 11px;
    font-weight: 600;
    color: #555;
    padding: 6px 4px 2px 4px;
    cursor: pointer;
    user-select: none;
}

.rdata-timeline-cal-month::before {
    content: '\25BE';
    margin-right: 4px;
    font-size: 9px;
    transition: transform 0.15s;
}

.rdata-timeline-cal-month-wrapper.collapsed .rdata-timeline-cal-month::before {
    transform: rotate(-90deg);
}

/* Calendar row (7 columns) */
.rdata-timeline-cal-row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0;
}

.rdata-timeline-cal-row + .rdata-timeline-cal-row {
    margin-top: -1px;
}

/* Calendar header row */
.rdata-timeline-cal-header {
    border-top: 1px solid #e0e0e0;
}

/* Calendar cell (shared) */
.rdata-timeline-cal-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 28px;
    font-size: 11px;
    box-sizing: border-box;
}

.rdata-timeline-cal-cell.header {
    font-size: 10px;
    font-weight: 600;
    color: #888;
    height: 22px;
}

.rdata-timeline-cal-cell.empty {
    background: transparent;
}

/* Calendar block cells: use overlap technique for clean borders */
.rdata-timeline-block.rdata-timeline-cal-cell {
    min-width: 0;
    border: 1px solid #e0e0e0;
    margin: 0 0 -1px -1px;
}

/* First cell in each row restores left margin */
.rdata-timeline-cal-row > :first-child {
    margin-left: 0;
}

/* Restore left border after empty cells */
.rdata-timeline-cal-cell.empty + .rdata-timeline-block.rdata-timeline-cal-cell {
    margin-left: 0;
}

/* Weekend styles */
.rdata-timeline-cal-cell.weekend {
    color: #c04040;
}

.rdata-timeline-cal-cell.header.weekend {
    color: #c04040;
}

.rdata-timeline-block.rdata-timeline-cal-cell.weekend {
    background: #faf5f5;
    color: #c04040;
}

.rdata-timeline-block.rdata-timeline-cal-cell.weekend:hover {
    background: #f5e0e0;
}

.rdata-timeline-block.rdata-timeline-cal-cell.selected {
    position: relative;
    z-index: 1;
}

.rdata-timeline-block.rdata-timeline-cal-cell.selected.weekend {
    background: #0078d4;
    color: white;
}

/* Simple mode: dropdown button + popup panel */
.rdata-timeline-simple-btn {
    box-sizing: border-box;
    width: 100%;
    font-size: 12px;
    font-family: inherit;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 2px 20px 2px 4px;
    outline: none;
    background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 2px center / 14px 14px;
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #333;
}
.rdata-timeline-simple-btn:focus {
    border-color: #0078d4;
}
.rdata-timeline-simple-panel {
    position: fixed;
    z-index: 10000;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    max-height: 400px;
    overflow-y: auto;
}
.rdata-slider-selector {
    display: flex;
    flex-direction: column;
}

.rdata-slider-selector.simple {
    width: auto;
    flex: 1 0 auto;
}

.rdata-slider-container {
    --rdata-slider-track-height: 8px;
    --rdata-slider-handle-radius: 7px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    width: 100%;
    box-sizing: border-box;
}
.rdata-slider-selector.simple .rdata-slider-container {
    --rdata-slider-track-height: 4px;
    --rdata-slider-handle-radius: 4px;
    padding: 0px;
}

/* Track (background bar) */
.rdata-slider-track {
    position: relative;
    height: var(--rdata-slider-track-height);
    background-color: #e0e0e0;
    border-radius: calc(var(--rdata-slider-track-height) / 2);
    margin: calc(var(--rdata-slider-handle-radius) + 2px) 8px;
    overflow: visible;
}

/* Range bar (selected range) */
.rdata-slider-range {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #0078d4;
    border-radius: calc(var(--rdata-slider-track-height) / 2);
    cursor: grab;
}

.rdata-slider-range:active {
    cursor: grabbing;
}

/* Circle handles */
.rdata-slider-handle {
    position: absolute;
    top: 50%;
    width: calc(var(--rdata-slider-handle-radius) * 2);
    height: calc(var(--rdata-slider-handle-radius) * 2);
    background-color: white;
    border: 2px solid #005a9e;
    border-radius: 50%;
    transform: translateY(-50%);
    cursor: ew-resize;
    z-index: 1;
    transition: transform 0.1s, box-shadow 0.1s;
}

.rdata-slider-handle:hover {
    transform: translateY(-50%) scale(1.15);
    box-shadow: 0 0 4px rgba(0, 90, 158, 0.4);
}

.rdata-slider-handle.start {
    left: 0;
    transform: translate(-50%, -50%);
}

.rdata-slider-handle.start:hover {
    transform: translate(-50%, -50%) scale(1.15);
}

.rdata-slider-handle.end {
    right: 0;
    transform: translate(50%, -50%);
}

.rdata-slider-handle.end:hover {
    transform: translate(50%, -50%) scale(1.15);
}

/* Labels */
.rdata-slider-label {
    white-space: nowrap;
    font-size: 11px;
    color: var(--rdata-slider-label-color, #111);
    line-height: 0.9;
}

/* Track row: default = bottom labels (grid layout) */
.rdata-slider-track-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    row-gap: 4px;
}
.rdata-slider-selector.simple .rdata-slider-track-row {
    row-gap: 0;
}

.rdata-slider-track-row > .rdata-slider-track {
    grid-column: 1 / -1;
    grid-row: 1;
}

.rdata-slider-track-row > .rdata-slider-label.start {
    grid-column: 1;
    grid-row: 2;
    text-align: left;
}

.rdata-slider-track-row > .rdata-slider-label.end {
    grid-column: 2;
    grid-row: 2;
    text-align: right;
}

/* Track row: side labels (flex row) */
.rdata-slider-track-row.side-labels {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 2px;
}

.rdata-slider-track-row.side-labels > .rdata-slider-track {
    flex: 1;
}
.rdata-tree-selector {
    display: flex;
    flex-direction: column;
}
.rdata-tree-selector.simple {
    width: auto;
    flex-shrink: 0;
}

/* Tree container */
.rdata-tree-container {
    display: flex;
    flex-direction: column;
    padding: 4px 0;
    overflow-y: auto;
    max-height: 300px;
    font-size: 12px;
    margin-left: 10px;
    margin-right: 5px;
    width: calc(100% - 15px);
    border: 1px solid #ccc;
    border-radius: 3px;
    background-color: white;
}

/* Tree node */
.rdata-tree-node {
    display: flex;
    flex-direction: column;
}

/* Node row (expander + checkbox + label + count) */
.rdata-tree-node-row {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px 4px;
    cursor: pointer;
    user-select: none;
    border-radius: 2px;
}

.rdata-tree-node-row:hover {
    background: #f0f0f0;
}

/* Expander button */
.rdata-tree-expander {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border: none;
    background: none;
    cursor: pointer;
    padding: 0;
    font-size: 13px;
    color: #666;
    flex-shrink: 0;
    transition: transform 0.15s;
}

.rdata-tree-expander.collapsed {
    transform: rotate(-90deg);
}

/* Leaf placeholder (no expander, same width) */
.rdata-tree-expander.leaf {
    visibility: hidden;
}

/* Checkbox */
.rdata-tree-checkbox {
    margin: 0;
    cursor: pointer;
    flex-shrink: 0;
}

/* Node label */
.rdata-tree-label {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #333;
}

/* Node count */
.rdata-tree-count {
    font-size: 10px;
    color: #999;
    flex-shrink: 0;
    margin-left: 4px;
}

/* Children container */
.rdata-tree-children {
    padding-left: 18px;
}

.rdata-tree-children.collapsed {
    display: none;
}

/* Hierarchy level header */
.rdata-tree-levels {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    color: #888;
    padding: 2px 6px 4px 6px;
    border-bottom: 1px solid #eee;
    margin-bottom: 2px;
}

.rdata-tree-level-label {
    color: #666;
}

.rdata-tree-level-sep {
    color: #ccc;
}

/* All checkbox row */
.rdata-tree-all-row {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px 6px;
    border-bottom: 1px solid #eee;
    margin-bottom: 2px;
    cursor: pointer;
    user-select: none;
}

.rdata-tree-all-row:hover {
    background: #f0f0f0;
}

/* Simple mode: custom dropdown with checkboxes */
.rdata-tree-simple-btn {
    box-sizing: border-box;
    width: 100%;
    font-size: 12px;
    font-family: inherit;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 2px 20px 2px 4px;
    outline: none;
    background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 2px center / 14px 14px;
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #333;
}
.rdata-tree-simple-btn:focus {
    border-color: #0078d4;
}
.rdata-tree-simple-panel {
    position: fixed;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.rdata-tree-simple-item {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px 6px;
    font-size: 12px;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
.rdata-tree-simple-item:hover {
    background: #f0f0f0;
}
.rdata-tree-simple-item.all {
    border-bottom: 1px solid #eee;
    margin-bottom: 2px;
}
.rdata-tree-simple-item input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
}
.rdata-tree-simple-item span {
    overflow: hidden;
    text-overflow: ellipsis;
}
.rpivot-button-bar {
    gap: 4px;
}
.rpivot-button-bar > button {
    padding: 2px 8px;
    border: none;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    background-color: transparent;
    color: var(--rpivot-button-bar-color);
    font-size: 13px;
    cursor: pointer;
    outline: none;
    box-shadow: none;
}
.rpivot-button-bar > button:hover {
    background-color: var(--rpivot-button-bar-hover-bg) !important;
}
.rpivot-button-bar > button[aria-pressed="true"] {
    border-bottom: 2px solid #007acc;
    font-weight: 600;
}
.rpivot-button-bar > button[aria-pressed="true"]:hover {
    background-color: var(--rpivot-button-bar-pressed-hover-bg) !important;
}
.rpivot-explorer-panel {
    width: 100%;
    height: 100%;
}.rpivot-detail-panel {
}.rpivot-chart-panel {
}.rpivot-map-panel {
}.rpivot-ai-prompter {
    font-size: 13px;
    padding: 8px 6px;
    gap: 6px;
}

.rpivot-ai-prompter button {
    flex: 0 0 auto;
    width: 25px;
    height: 25px;
    font-size: 12px;
    border: 1px solid #888;
    border-radius: 4px;
    cursor: pointer;
}
.rpivot-ai-prompter button:hover {
    background-color: #e2e5e9;
}

.rpivot-ai-prompter-prompt {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column; 
    gap: 4px;
    padding-top: 4px;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: var(--rpivot-ai-prompter-prompt-bg);
    width: 100%;
    max-width: var(--rpivot-ai-prompter-prompt-width);
}
.rpivot-ai-prompter-input {
    flex: 1 1 auto;
    resize: none;
    overflow-y: auto;
    padding: 4px 8px 0px 8px;
    border: none;
    background: transparent;
    color: var(--rpivot-ai-prompter-input-color);
    line-height: 1.4;
    box-sizing: border-box;
    outline: none;
    /* Firefox: thumb 만 보이도록 */
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.25) transparent;
}
.rpivot-ai-prompter-input::-webkit-scrollbar {
    width: 12px;
}
.rpivot-ai-prompter-input::-webkit-scrollbar-track {
    background: transparent;
}
.rpivot-ai-prompter-input::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.25);
    border-radius: 6px;
    /* 투명 border + padding-box 로 thumb 를 가늘게/떠 보이게 한다 */
    border: 3px solid transparent;
    background-clip: padding-box;
}
.rpivot-ai-prompter-input::-webkit-scrollbar-thumb:hover {
    background-color: rgba(0, 0, 0, 0.4);
}
.rpivot-ai-prompter-input::-webkit-scrollbar-button {
    display: none;
}
.rpivot-ai-prompter-input::placeholder {
    color: #999;
    font-size: 13px;
}

.rpivot-ai-prompter-actions {
    /* position: absolute; */
    /* right: 20px;
    bottom: 4px; */
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 2px;
    padding: 0 12px 4px 7px;
}

.rpivot-ai-prompter-model {
    align-self: flex-end;
    margin-bottom: 2px;
    color: #796;
    font-size: 0.95em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rpivot-ai-prompter .rpivot-ai-prompter-submit {
    flex: 0 0 auto;
    padding: 0;
    border: none;
    cursor: pointer;
    background-color: #c8ccd1;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 15V6M10 6 6 10M10 6l4 4' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: center;
    transition: background-color 0.15s;
}
.rpivot-ai-prompter .rpivot-ai-prompter-submit:disabled {
    cursor: default;
    background-color: #c8ccd1;
}
.rpivot-ai-prompter .rpivot-ai-prompter-submit:not(:disabled) {
    background-color: #4a90d9;
}
.rpivot-ai-prompter .rpivot-ai-prompter-submit:not(:disabled):hover {
    background-color: #3a7bc0;
}

.rpivot-ai-prompter .rpivot-ai-prompter-clear {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M5 5l8 8M13 5l-8 8' fill='none' stroke='%23666' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: center;
    transition: opacity 0.15s, background-color 0.15s;
}
.rpivot-ai-prompter .rpivot-ai-prompter-clear:not(:disabled):hover {
    background-color: #e2e5e9;
}
.rpivot-ai-prompter .rpivot-ai-prompter-clear:disabled {
    cursor: default;
    opacity: 0.35;
}

.rpivot-ai-prompter-response {
    flex: 1 1 auto;
    align-self: stretch;
    min-height: 0;
    overflow-y: auto;
    padding: 12px;
    box-sizing: border-box;
    border-top: 1px solid var(--rpivot-ai-prompter-response-border-top);
    font-size: 13px;
    line-height: 1.5;
    color: var(--rpivot-ai-prompter-response-color);
    word-break: break-word;
    /* Firefox: thumb 만 보이도록 */
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.25) transparent;
}
/** TODO: 모든 곳에서 아래 문제 없으면 위에 병합 */
.rpivot-ai-prompter-response {
    align-self: center;
    width: 100%;
    max-width: var(--rpivot-ai-prompter-response-width);
}

.rpivot-ai-prompter-response::-webkit-scrollbar {
    width: 12px;
}
.rpivot-ai-prompter-response::-webkit-scrollbar-track {
    background: transparent;
}
.rpivot-ai-prompter-response::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.25);
    border-radius: 6px;
    /* 투명 border + padding-box 로 thumb 를 가늘게/떠 보이게 한다 */
    border: 3px solid transparent;
    background-clip: padding-box;
}
.rpivot-ai-prompter-response::-webkit-scrollbar-thumb:hover {
    background-color: rgba(0, 0, 0, 0.4);
}
.rpivot-ai-prompter-response::-webkit-scrollbar-button {
    display: none;
}
.rpivot-ai-chat-welcome {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
}
.rpivot-ai-chat-suggestions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rpivot-ai-chat-item {
    font-size: 13px;
}
.rpivot-ai-chat-greeting {
    font-size: 1.3em;
    text-align: center;
}
.rpivot-ai-chat-suggestion {
    width: 100%;
    max-width: 270px;
    justify-content: center;
    color: var(--rpivot-ai-prompter-suggestion-color);
    background-color: var(--rpivot-ai-prompter-suggestion-bg);
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 4px 8px;
    cursor: pointer;
}
.rpivot-ai-chat-suggestion:hover {
    background-color: var(--rpivot-ai-prompter-suggestion-hover-bg);
}
.rpivot-ai-chat-prompt {
    display: inline;
    padding: 0 1px;
    font: inherit;
    color: #2a6cb0;
    text-decoration: underline;
    text-decoration-color: rgba(42, 108, 176, 0.35);
    text-underline-offset: 2px;
    cursor: pointer;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
    border-radius: 3px;
    transition: color 0.15s, background-color 0.15s, text-decoration-color 0.15s;
}
.rpivot-ai-chat-prompt:hover {
    color: #1f5fa8;
    background-color: rgba(42, 108, 176, 0.1);
    text-decoration-color: currentColor;
}
.rpivot-ai-chat-conversation {
    gap: 16px;
}
.rpivot-ai-chat-response {
    user-select: text;
    -webkit-user-select: text;
    cursor: text;
}
.rpivot-ai-prompter .rpivot-ai-chat-copy {
    align-self: flex-start;
    width: 22px;
    height: 22px;
    margin-top: -26px;
    padding: 0;
    border: none;
    border-radius: 0;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 14px 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease;
}
.rpivot-ai-chat-conversation:hover .rpivot-ai-chat-copy {
    opacity: 0.55;
}
.rpivot-ai-prompter .rpivot-ai-chat-copy:hover {
    opacity: 1;
    background-color: transparent;
}
.rpivot-ai-prompter .rpivot-ai-chat-copy.rpivot-ai-chat-copied {
    opacity: 1;
    background-color: transparent;
    background-size: 16px 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232e7d32' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.rpivot-ai-chat-response pre {
    position: relative;
    white-space: pre;
    overflow-x: auto;
    margin: 8px 0;
    padding: 8px 10px;
    box-sizing: border-box;
    border: 1px solid var(--rpivot-ai-prompter-code-border);
    border-radius: 6px;
    background-color: var(--rpivot-ai-prompter-code-bg);
}
.rpivot-ai-prompter .rpivot-ai-code-copy {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    border-radius: 0;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 14px 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease;
}
.rpivot-ai-chat-response pre:hover .rpivot-ai-code-copy {
    opacity: 0.55;
}
.rpivot-ai-prompter .rpivot-ai-code-copy:hover {
    opacity: 1;
}
.rpivot-ai-prompter .rpivot-ai-code-copy.rpivot-ai-chat-copied {
    opacity: 1;
    background-size: 16px 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232e7d32' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.rpivot-ai-chat-response code {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
    font-size: 0.92em;
}
/* 인라인 code (pre 밖)만 배경/테두리로 강조하고 줄바꿈 허용. pre 안의 code는 pre가 가로 스크롤 처리 */
.rpivot-ai-chat-response :not(pre) > code {
    overflow-wrap: anywhere;
    word-break: break-word;
    padding: 1px 5px;
    border: 1px solid var(--rpivot-ai-prompter-code-border);
    border-radius: 4px;
    background-color: var(--rpivot-ai-prompter-code-bg);
}
.rpivot-ai-chat-query {
    align-self: flex-end;
    max-width: 85%;
    /* border: 1px solid #4a90d9; */
    background-color: var(--rpivot-ai-prompter-query-bg);
    border-radius: 6px;
    padding: 8px 10px;
    user-select: text;
    -webkit-user-select: text;
}
.rpivot-ai-chat-rejected {
    color: #c0392b;
}
.rpivot-ai-chat-spinner {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid rgba(0, 0, 0, 0.15);
    border-top-color: #4a90d9;
    border-radius: 50%;
    animation: rpivot-ai-spin 0.7s linear infinite;
    vertical-align: middle;
}
.rpivot-ai-chat-pending-text {
    margin-left: 6px;
    color: #888;
    vertical-align: middle;
}
@keyframes rpivot-ai-spin {
    to {
        transform: rotate(360deg);
    }
}

/* ---------------------------------------------------------------------------
 * AI 파라미터 패널 (pending command 확인/입력)
 * ------------------------------------------------------------------------- */
.rpivot-ai-param-panel {
    box-sizing: border-box;
    align-self: center;
    width: 100%;
    max-width: var(--rpivot-ai-prompter-prompt-width);
    gap: 10px;
    padding: 12px 10px 12px 14px;
    border: 1px solid #ccc;
    border-radius: 8px;
    background: #f0f0f0;
}

/* label 열을 max-content 로 두면 모든 행의 label 너비가 가장 긴 label 에 맞춰 동일해진다. */
.rpivot-ai-param-grid {
    display: grid;
    grid-template-columns: max-content 1fr max-content;
    align-items: center;
    column-gap: 8px;
    row-gap: 6px;
    width: 100%;
}

.rpivot-ai-param-label {
    justify-self: start;
    white-space: nowrap;
    color: #444;
    font-weight: 500;
    font-size: 12px;
}

/* description 도움말: mouse over 시 title 로 설명 표시 */
.rpivot-ai-param-help {
    justify-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    color: #6b7280;
    border: 1px solid #c4c9cf;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.rpivot-ai-param-help:hover {
    color: #fff;
    border-color: #4a90d9;
    background: #4a90d9;
}

.rpivot-ai-param-control {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 26px;
    padding: 2px 6px;
    font-size: 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
    color: #333;
}
.rpivot-ai-param-control:focus {
    outline: none;
    border-color: #4a90d9;
    box-shadow: 0 0 0 2px rgba(74, 144, 217, 0.15);
}
input.rpivot-ai-param-control[type="checkbox"] {
    justify-self: start;
    width: 16px;
    height: 16px;
    padding: 0;
}

/* editable === false : readonly(그레이로 확실히 구분) */
.rpivot-ai-param-control.rpivot-ai-param-readonly {
    background: #e9ebee;
    color: #333;
    border-color: #d7dbe0;
    cursor: default;
}
.rpivot-ai-param-control.rpivot-ai-param-readonly:focus {
    border-color: #d7dbe0;
    box-shadow: none;
}

.rpivot-ai-param-footer {
    display: block;
    overflow: hidden;
    width: 100%;
    padding-top: 10px;
    border-top: 1px solid #ccc;
}

/* '?' 클릭 설명 / 실행 validation 메시지 영역. 우하단 버튼 위/옆 빈 공간을 채운다. */
.rpivot-ai-param-message {
    font-size: 13px;
    line-height: 1.5;
    color: #6b7280;
    word-break: break-word;
}
.rpivot-ai-param-message.error {
    color: #d64545;
    font-weight: 500;
}

/* 실행 버튼: 우하단 float(텍스트가 버튼 위/옆 공간을 감싸도록), 라벨+아이콘 수평 배치 */
button.rpivot-ai-param-run {
    float: right;
    margin-left: 12px;
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: auto;
    height: 24px;
    padding: 0 12px 0 9px;
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    border: none;
    border-radius: 6px;
    background-color: #4a90d9;
    box-shadow: 0 1px 3px rgba(74, 144, 217, 0.35);
    cursor: pointer;
    transition: background-color 0.15s, box-shadow 0.15s;
}
button.rpivot-ai-param-run::before {
    content: "";
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px 13px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23ffffff' stroke='none'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
}
button.rpivot-ai-param-run:hover {
    background-color: #3a7bc0;
    box-shadow: 0 2px 6px rgba(74, 144, 217, 0.45);
}.rpivot-insight-panel {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    box-sizing: border-box;
}

.rpivot-insight-panel .rpivot-ai-prompter-prompt {
    margin: 8px;
}

.rpivot-insight-panel .rpivot-insight-response {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px;
    box-sizing: border-box;
    background: #f6f8fa;
    border-top: 1px solid #e2e5e9;
}

/* 응답 영역 마크다운 렌더 스타일 */
.rpivot-insight-panel .rpivot-insight-response {
    font-size: 13px;
    line-height: 1.6;
    color: #222;
    word-break: break-word;
}

.rpivot-insight-response h1,
.rpivot-insight-response h2,
.rpivot-insight-response h3,
.rpivot-insight-response h4 {
    margin: 0.8em 0 0.4em;
    line-height: 1.3;
    font-weight: 600;
}

.rpivot-insight-response h1 {
    font-size: 1.5em;
}

.rpivot-insight-response h2 {
    font-size: 1.3em;
}

.rpivot-insight-response h3 {
    font-size: 1.15em;
}

.rpivot-insight-response h4 {
    font-size: 1em;
}

.rpivot-insight-response p {
    margin: 0.5em 0;
}

.rpivot-insight-response ul,
.rpivot-insight-response ol {
    margin: 0.5em 0;
    padding-left: 1.4em;
}

.rpivot-insight-response li {
    margin: 0.2em 0;
}

.rpivot-insight-response a {
    color: #4a90d9;
    text-decoration: none;
}

.rpivot-insight-response a:hover {
    text-decoration: underline;
}

.rpivot-insight-response code {
    padding: 0.1em 0.35em;
    border-radius: 4px;
    background: #e7eaee;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 0.9em;
}

.rpivot-insight-response pre {
    margin: 0.6em 0;
    padding: 10px 12px;
    border-radius: 6px;
    background: #fff;
    border: 1px solid #e2e5e9;
    overflow-x: auto;
}

.rpivot-insight-response pre code {
    padding: 0;
    background: none;
}

.rpivot-insight-response blockquote {
    margin: 0.6em 0;
    padding: 0.2em 0.9em;
    border-left: 3px solid #d0d3d8;
    color: #555;
}

.rpivot-insight-response table {
    border-collapse: collapse;
    margin: 0.6em 0;
}

.rpivot-insight-response th,
.rpivot-insight-response td {
    padding: 4px 8px;
    border: 1px solid #d8dce1;
    background: #fff;
}

.rpivot-insight-response th {
    background: #eceef1;
}

.rpivot-insight-response img {
    max-width: 100%;
}

.rpivot-insight-response hr {
    margin: 0.8em 0;
    border: none;
    border-top: 1px solid #e0e0e0;
}

.rpivot-insight-response :first-child {
    margin-top: 0;
}

.rpivot-insight-response :last-child {
    margin-bottom: 0;
}

/* 응답 대기 인디케이터 */
.rpivot-insight-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #666;
    font-size: 13px;
}

.rpivot-insight-spinner {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    border: 2px solid #cdd3da;
    border-top-color: #4a90d9;
    border-radius: 50%;
    animation: rpivot-insight-spin 0.7s linear infinite;
}

@keyframes rpivot-insight-spin {
    to {
        transform: rotate(360deg);
    }
}

.rpivot-insight-panel .rpivot-insight-prompt {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 8px;
    border-top: 1px solid #ddd;
    box-sizing: border-box;
}

.rpivot-insight-panel .rpivot-insight-prompt-input {
    flex: 1 1 auto;
    resize: none;
    max-height: 120px;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font: inherit;
    line-height: 1.4;
    box-sizing: border-box;
    outline: none;
}

.rpivot-insight-panel .rpivot-insight-prompt-input:focus {
    border-color: #4a90d9;
}

.rpivot-insight-panel .rpivot-insight-prompt-send {
    flex: 0 0 auto;
    padding: 8px 14px;
    border: none;
    border-radius: 6px;
    background: #4a90d9;
    color: #fff;
    cursor: pointer;
    font: inherit;
}

.rpivot-insight-panel .rpivot-insight-prompt-send:hover {
    background: #3a7bc0;
}.rpivot-splitter {
    box-sizing: border-box;
    background-color: var(--rpivot-splitter-bg);
    /* transition: background-color 0.15s ease; */
}

.rpivot-splitter--vertical {
    cursor: col-resize;
}

.rpivot-splitter--horizontal {
    cursor: row-resize;
}

.rpivot-splitter:hover,
.rpivot-splitter--active,
.rpivot-splitter--ghost {
    background-color: var(--rpivot-splitter-ghost-bg);
}
.rpivot-explorer {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: 180px;
    height: 280px;
    box-sizing: border-box;
    background: var(--rpivot-explorer-bg);
    font-family: AppleSDGothicNeo-Light, "HelveticaNeue", "Malgun Gothic", "맑은 고딕", sans-serif;
}
/** horizontal(좌/우) 분할: 피벗 뷰 오른쪽에 배치 */
.rpivot-explorer.rpivot-explorer--horizontal {
    left: auto;
    top: 0;
    right: 0;
    bottom: 0;
    min-height: 0;
    height: auto;
    min-width: 240px;
    width: 360px;
    padding-left: 3px;
}
/** left(좌/우) 분할: 피벗 뷰 왼쪽에 배치 (--horizontal 규칙을 덮어써야 하므로 뒤에 둔다) */
.rpivot-explorer.rpivot-explorer--left {
    left: 0;
    right: auto;
    padding-left: 0;
    padding-right: 3px;
}
/** empty view */
.rpivot-explorer-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    width: 100%;
    height: 100%;
    color: #999;
    font-size: 17px;
    line-height: 0.5;
    text-align: center;
    background-color: #f0f0f0; 
    user-select: none;
}
/** header */
.rpivot-explorer-header {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-shrink: 0;
    padding: 4px 6px 5px 6px;
}
.rpivot-explorer-header .rpivot-button-bar button {
    font-size: 12px;
}
.rpivot-explorer-header-info {
    align-items: center;
    margin-left: 5px;
    padding: 3px 4px;
    background-color: var(--rpivot-explorer-header-info-bg);
    border: 1px solid var(--rpivot-explorer-header-info-bd);;
    border-left: 1px solid var(--rpivot-explorer-header-info-bd-left);;
    border-top: 1px solid var(--rpivot-explorer-header-info-bd-top);;
    color: var(--rpivot-explorer-header-info-color);
    font-size: 12px;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rpivot-explorer-header-count {
    font-size: 12px;
    white-space: pre;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--rpivot-explorer-header-count-color);
    margin-right: 4px;
}
/** menu button */
.rpivot-explorer-header-menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 24px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 4px;
    background-image: var(--rpivot-menu-bg);
    background-size: 13px 13px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-explorer-header-menu:hover {
    background-color: #e0e0e0;
}
/** close button */
.rpivot-explorer-header-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 4px;
    background-image: var(--rpivot-close-button-bg);
    background-size: 16px 16px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-explorer-header-close:hover {
    background-color: #e0e0e0;
}
/** splitter */
.rpivot-explorer-splitter {
    height: 3px;
    border-bottom: 2px solid var(--rpivot-explorer-bg);
    transform: none;
    z-index: 2;
    flex-shrink: 0;
}
/** horizontal 분할일 때 스플리터는 왼쪽 가장자리에 세로로 위치 */
.rpivot-explorer--horizontal .rpivot-explorer-splitter {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    height: auto;
    border-bottom: none;
    border-right: 2px solid var(--rpivot-explorer-bg);
}
/** left 분할일 때 스플리터는 오른쪽 가장자리에 세로로 위치 */
.rpivot-explorer--left .rpivot-explorer-splitter {
    left: auto;
    right: 0;
    border-right: none;
    border-left: 2px solid var(--rpivot-explorer-bg);
}
.rpivot-explorer-splitter:hover {
    border: none;
}
    
.rpivot-explorer-ghost-panel {
    position: fixed;
    box-sizing: border-box;
    pointer-events: none;
    z-index: 9999;
    background-color: var(--rpivot-ghost-panel-bg);
    border: 1px dashed var(--rpivot-ghost-panel-bd);
    box-shadow: 0 0 0 1px var(--rpivot-ghost-panel-sd);
}
.rpivot-explorer-ghost-source {
    /* opacity: 0.35; */
    pointer-events: none;
}.rpivot-page {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--rpivot-page-bg-color);
}
.rpivot-menubar {
    display: flex;
    gap: 0px;
    align-items: center;
}
.rpivot-menubar-item {
    display: flex;
    align-items: center;
    gap: 4px;
    color: var(--rpivot-menubar-item-color);
    font-size: 12px;
    cursor: pointer;
    white-space: nowrap;
    padding: 4px 4px;
    border-radius: 3px;
}
.rpivot-menubar-item:hover {
    background-color: #e8e8e8;
}
.rpivot-menubar-item.disabled {
    opacity: 0.35;
    pointer-events: none;
    cursor: default;
}
.rpivot-menubar-item-label:hover {
    text-decoration: underline;
}
.rpivot-menubar-item-icon {
    width: 14px;
    height: 14px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}.rpivot-filterbar {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: wrap;
    flex: 1 1 auto;
    padding-left: 6px;
    margin-left: 2px;
    position: relative;
}
.rpivot-filterbar::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 18px;
    background-color: var(--rpivot-bar-divider-color);
}
.rpivot-filterbar-title {
    margin-right: 2px;
    font-size: 12px;
    /* font-weight: bold; */
    color: #111;
    white-space: nowrap;
}
.rpivot-filterbar-title:hover {
    color: #118;
    text-decoration: underline;
}
.rpivot-filterbar-title::before {
    content: '';
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-right: 2px;
    vertical-align: middle;
    position: relative;
    top: -1px;
    background-color: #a77;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18l-7 8v6l-4 2v-8z'/%3E%3C/svg%3E");
    mask-size: contain;
    mask-repeat: no-repeat;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18l-7 8v6l-4 2v-8z'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
}.rpivot-book-header {
    display: flex;
    gap: 4px;
    background-color: var(--rpivot-book-header-bg);
    border-bottom: 1px solid var(--rpivot-book-header-bottom-color);
    align-items: center;
    padding: 5px 6px;
}

.rpivot-book-header-layoutbar {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
    padding-left: 10px;
    position: relative;
}

/* .rpivot-book-header-layoutbar::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 18px;
    background-color: var(--rpivot-bar-divider-color);
} */

.rpivot-book-header-layoutbar-spacer {
    height: 100%;
    width: 6px;
}

.rpivot-book-header-layoutbar-divider {
    border-left: 1px solid var(--rpivot-bar-divider-color);
    height: 16px;
    margin: 0 4px;
}

.rpivot-book-header-layoutbar button {
    width: 24px;
    height: 22px;
    padding: 2px 2px;
    border: 1px solid transparent;
    background-color: transparent;
    color: #999999;
    cursor: pointer;
    border-radius: 3px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 20px 20px;
}

.rpivot-book-header-layoutbar button:hover {
    border-color: #555;
}

.rpivot-book-header-layoutbar button:active {
    border-color: #555;
}

/* 기본 상태: 외곽선만 */
.rpivot-book-header-layoutbar-button-left {
    background-image: var(--rpivot-book-header-layoutbar-left-bg);
}

.rpivot-book-header-layoutbar-button-right {
    background-image: var(--rpivot-book-header-layoutbar-right-bg);
}

/* active 상태: 내부 패널 채워짐 */
.rpivot-book-header-layoutbar-button-left[data-active] {
    background-image: var(--rpivot-book-header-layoutbar-left-bg-active);
}

.rpivot-book-header-layoutbar-button-right[data-active] {
    background-image: var(--rpivot-book-header-layoutbar-right-bg-active);
}

.rpivot-book-header-layoutbar-button-bottom {
    background-image: var(--rpivot-book-header-layoutbar-bottom-bg);
}

.rpivot-book-header-layoutbar-button-bottom[data-active] {
    background-image: var(--rpivot-book-header-layoutbar-bottom-bg-active);
}

/* AI 패널: 큰 상자(좌) + 작은 상자 2개(우 세로), 동일 폭 */
.rpivot-book-header-layoutbar-button-ai {
    background-image: var(--rpivot-book-header-layoutbar-ai-bg);
}

.rpivot-book-header-layoutbar-button-ai[data-active] {
    background-image: var(--rpivot-book-header-layoutbar-ai-bg-active);
}

.rpivot-book-header-position-icons {
    display: flex;
    flex-direction: row;
    gap: 2px;
    align-items: center;
    flex-shrink: 0;
}

.rpivot-book-header-position-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 3px;
    border: 1px solid transparent;
    border-radius: 3px;
    background: none;
    color: #999999;
    cursor: pointer;
}

.rpivot-book-header-position-btn:hover {
    color: #333333;
    background-color: #ffffff;
    border-color: #cccccc;
}

.rpivot-book-header-position-btn--active {
    color: #1e3a5f;
    background-color: #ffffff;
    border-color: #1e3a5f;
}

.rpivot-book-header-position-btn--active:hover {
    border-color: #2a5f9e;
    color: #2a5f9e;
}

.rpivot-book-header-position-btn svg {
    width: 100%;
    height: 100%;
}.rpivot-ai-chat-query {
    background-color: var(--rpivot-ai-prompter-query-bg);
}.rpivot-tabbar {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0;
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
}
.rpivot-tabbar-divider {
    width: 1px;
    height: 18px;
    margin: 0 4px;
    background-color: #aaa;
}
.rpivot-tabbar-add {
    width: 20px;
    height: 20px;
    padding: 0;
    margin-left: 4px;
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cline x1='8' y1='3' x2='8' y2='13' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3Cline x1='3' y1='8' x2='13' y2='8' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-size: 16px 16px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-tabbar-add:hover {
    background-color: #d8d8d8;
}
.rpivot-tabbar-ai {
    width: 20px;
    height: 20px;
    padding: 0;
    margin-left: 4px;
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M6 1.2C6.4 4.9 7.3 5.8 11 6.2 7.3 6.6 6.4 7.5 6 11.2 5.6 7.5 4.7 6.6 1 6.2 4.7 5.8 5.6 4.9 6 1.2z' fill='%237b61ff'/%3E%3Cpath d='M12 8.6c.22 2.05.6 2.43 2.65 2.65-2.05.22-2.43.6-2.65 2.65-.22-2.05-.6-2.43-2.65-2.65 2.05-.22 2.43-.6 2.65-2.65z' fill='%237b61ff'/%3E%3Cpath d='M12.4 1.4c.12 1.05.32 1.25 1.37 1.37-1.05.12-1.25.32-1.37 1.37-.12-1.05-.32-1.25-1.37-1.37 1.05-.12 1.25-.32 1.37-1.37z' fill='%23a78bfa'/%3E%3C/svg%3E");
    background-size: 19px 19px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-tabbar-ai:hover {
    background-color: #d8d8d8;
}

.rpivot-tabnavigator {
    display: flex;
    gap: 8px;
    align-items: center;
    flex: 0 0 auto;
}
.rpivot-tabnavigator-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    background-size: 16px 16px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-tabnavigator-btn:hover {
    background-color: #c0c0c0;
}
.rpivot-tabnavigator-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.rpivot-tabnavigator-btn[data-action="first"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M11 3L6 8l5 5' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cline x1='5' y1='3' x2='5' y2='13' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
}
.rpivot-tabnavigator-btn[data-action="prev"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M10 3L5 8l5 5' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.rpivot-tabnavigator-btn[data-action="next"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M6 3l5 5-5 5' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.rpivot-tabnavigator-btn[data-action="last"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M5 3l5 5-5 5' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cline x1='11' y1='3' x2='11' y2='13' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") ;
}

.rpivot-pagelist {
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
    overflow-x: auto;
    /* 스크롤바 숨김 (스크롤 동작은 prev/next 버튼이 담당) */
    scrollbar-width: none;
    align-self: stretch;
}
.rpivot-pagelist::-webkit-scrollbar {
    display: none;
}
.rpivot-pagelist-scrollbtn {
    flex: 0 0 auto;
    width: 14px;
    height: 20px;
    padding: 0;
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    background-size: 12px 12px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-pagelist-scrollbtn:hover {
    background-color: rgba(0, 0, 0, 0.08);
}
.rpivot-pagelist-scrollbtn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    background-color: transparent;
}
.rpivot-pagelist-scrollbtn[data-action="scroll-prev"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M8 2L3 6l5 4z' fill='%23555'/%3E%3C/svg%3E");
}
.rpivot-pagelist-scrollbtn[data-action="scroll-next"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M4 2l5 4-5 4z' fill='%23555'/%3E%3C/svg%3E");
}
.rpivot-pagetab {
    display: inline-block;
    position: relative;
    flex: 0 0 auto;
    max-width: 150px;
    box-sizing: border-box;
    padding: 0px 8px;
    background-color: var(--rpivot-pagetab-bg);
    color: var(--rpivot-pagetab-color);
    border: none;
    outline: none;
    /* cursor: pointer; */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    align-self: stretch;
    font-size: 13px;
}
.rpivot-pagetab::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--rpivot-pagetab-bottom);
    transform: scaleX(0);
    transform-origin: left;
}
.rpivot-pagetab[aria-selected] {
    background-color: var(--rpivot-pagetab-selected-bg);
    /* box-shadow: inset 0 -2px 0 #007acc; */
    /* border-bottom: 2px solid #007acc; */
    color: var(--rpivot-pagetab-selected-color);
    font-weight: 600;
}
.rpivot-pagetab[aria-selected]::after {
    transition: transform .25s ease;
    transform: scaleX(1);
}
.rpivot-pagetab:hover:not([aria-selected]) {
    background-color: var(--rpivot-pagetab-hover-bg);
}
.rpivot-pagetab:hover[aria-selected] {
    background-color: var(--rpivot-pagetab-selected-hover-bg);
}.rpivot-book-footer {
    background-color: var(--rpivot-book-footer-bg);
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 34px;
    padding: 0 6px;
}
.rpivot-book-footer-counts {
    display: flex;
    align-items: center;
    gap: 2px;
    font-size: 12px;
    color: var(--rpivot-book-footer-counts-color);
    margin-left: 8px;
}
.rpivot-book-footer-count {
    font-weight: bold;
}
.rpivot-book-footer-count.source-count {
    font-weight: bold;
    cursor: pointer;
}
.rpivot-book-footer-count.source-count:hover {
    text-decoration: underline;
}
.rpivot-book-footer-count.filtered-count {
    color: var(--rpivot-book-footer-counts-filtered-color);
}
.rpivot-field-panel-footer {
    display: flex;
    gap: 2px;
    align-items: center;
    padding: 0px 10px 8px 10px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--rpivot-inspector-border);
    font-size: 13px;
    color: var(--rpivot-field-panel-footer-color);
}
.rpivot-field-panel-header {
    display: flex;
    gap: 4px;
    align-items: center;
    margin: 4px 8px 0 8px;
    padding: 2px 6px;
    flex-shrink: 0;
    background-color: #e8e8e8;
    border-radius: 5px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
    font-size: 12px;
}
.rpivot-field-panel-header-title {
    font-size: 0.9em;
    color: #555;
}
.rpivot-field-panel-header-index {
    color: #777;
    margin-left: auto;
}
.rpivot-field-panel-header-name {
    font-weight: bold;
    color: #555;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}.rpivot-inspector-panel {
}.rpivot-drop-indicator {
    position: absolute;
    left: 4px;
    right: 4px;
    height: 2px;
    background-color: #2383e2;
    border-radius: 1px;
    pointer-events: none;
    transform: translateY(-50%);
    transition: top 0.04s cubic-bezier(0.2, 0, 0, 1);
    z-index: 10;
}

.rpivot-drop-indicator::before,
.rpivot-drop-indicator::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 2px;
    height: 8px;
    background-color: #2383e2;
    border-radius: 1px;
    transform: translateY(-50%);
}

.rpivot-drop-indicator::before {
    left: -1px;
}

.rpivot-drop-indicator::after {
    right: -1px;
}

.rpivot-drop-indicator-invalid {
    background-color: #eb5757;
}

.rpivot-drop-indicator-invalid::before,
.rpivot-drop-indicator-invalid::after {
    background-color: #eb5757;
}
.rpivot-inspector-field {
    display: flex;
    align-items: center;
    padding: 2px 6px;
    border: none;
    background-color: transparent;
    border-radius: 2px;
    user-select: none;
    font-size: 13px;
    box-sizing: border-box;
    flex-shrink: 0;
    min-width: 0;
    transition: background-color 0.15s, box-shadow 0.15s;
}

.rpivot-inspector-field:hover,
.rpivot-inspector-field[data-menu="true"] {
    background-color: var(--rpivot-inspector-field-hover-bg);
}

.rpivot-inspector-field:active {
    /* cursor: grabbing; */
}

.rpivot-inspector-field-dragging {
    opacity: 0.5;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    background-color: #bfdbfe;
}

.rpivot-inspector-field-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--rpivot-inspector-text);
}

.rpivot-inspector-field-type-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-right: 4px;
    font-size: 9px;
    font-weight: 600;
    color: var(--rpivot-inspector-text-muted);
    border-radius: 3px;
    flex-shrink: 0;
}
.rpivot-inspector-field-type-icon svg {
    width: 12px;
    height: 12px;
}
.rpivot-inspector-field-type-icon[data-type="number"] {
    color: #3b82f6;
}
.rpivot-inspector-field-type-icon[data-type="date"] svg {
    width: 16px;
    height: 16px;
}
.rpivot-inspector-field-type-icon[data-type="text"] {
    color: #64748b;
}

.rpivot-inspector-field-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    padding: 0;
    border: none;
    background-color: transparent;
    border-radius: 3px;
    cursor: pointer;
    font-size: 10px;
    color: var(--rpivot-inspector-text-muted);
    transition: background-color 0.15s, color 0.15s;
}

.rpivot-inspector-field-button:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.rpivot-inspector-field-button-remove {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 400;
}

.rpivot-inspector-field-button-remove:hover:not(:disabled) {
    background-color: rgba(239, 68, 68, 0.1);
    color: #ef4444;
}

.rpivot-inspector-field-menu {
    width: 13px;
    height: 13px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    background-image: var(--rpivot-field-menu-bg);
    visibility: hidden;
}
.rpivot-inspector-field:hover .rpivot-inspector-field-menu {
    visibility: visible;
}
.rpivot-inspector-field-menu[data-menu="true"] {
    visibility: visible;
}

.rpivot-inspector-field-menu:hover {
    background-image: var(--rpivot-field-menu-hover-bg);
}
.rpivot-field-section {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rpivot-field-section-bd);
    background-color: var(--rpivot-inspector-section-bg);
    min-height: 120px;
    min-width: 50;
    box-sizing: border-box;
    border-radius: 4px;
    overflow: hidden;
}
.rpivot-field-section-hover {
    border-color: var(--rpivot-inspector-accent-bd);
    border-style: solid;
    background-color: var(--rpivot-inspector-accent-bg);
}

.rpivot-field-section-header {
    display: flex;
    align-items: center;
    padding: 4px 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--rpivot-inspector-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    user-select: none;
    position: relative;
    border-bottom: 1px solid var(--rpivot-inspector-border);
    background-color: var(--rpivot-field-section-header-bg);
}
.rpivot-field-section-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    margin-right: 6px;
    color: var(--rpivot-inspector-text-muted);
}

.rpivot-field-section-icon svg {
    width: 100%;
    height: 100%;
}

.rpivot-field-section-title {
    flex: 1;
    font-size: 12px;
    font-weight: bold;
    color: var(--rpivot-field-section-title);
}

.rpivot-field-section-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    background-color: transparent;
    border-radius: 4px;
    cursor: pointer;
    color: var(--rpivot-inspector-text-muted);
    flex-shrink: 0;
    background-image: var(--rpivot-menu-bg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px 13px;
}
.rpivot-field-section-menu:hover {
    background-color: rgba(0, 0, 0, 0.08);
    background-image: var(--rpivot-menu-hover-bg);
}

.rpivot-section-header {
    display: flex;
    align-items: center;
    padding: 4px 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--rpivot-inspector-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    user-select: none;
    position: relative;
    border-bottom: 1px solid var(--rpivot-inspector-border);
    background-color: #f8f8f8;
}

.rpivot-section-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    margin-right: 6px;
    color: var(--rpivot-inspector-text-muted);
}
.rpivot-section-icon svg {
    width: 100%;
    height: 100%;
}

.rpivot-section-title {
    flex: 1;
    font-size: 12px;
    font-weight: bold;
    color: #555;
}

.rpivot-section-add-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    background-color: transparent;
    border-radius: 4px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    color: var(--rpivot-inspector-text-muted);
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
    flex-shrink: 0;
}
.rpivot-section-add-btn:hover {
    background-color: rgba(59, 130, 246, 0.1);
    color: var(---accent);
}

.rpivot-add-field-dropdown {
    --rpivot-inspector-border: #e2e8f0;
    --rpivot-inspector-text: #1e293b;
    --rpivot-inspector-text-muted: #64748b;
    --rpivot-inspector-section-bg: #ffffff;
    position: fixed;
    min-width: 180px;
    max-height: 240px;
    overflow-y: auto;
    background-color: var(--rpivot-inspector-section-bg);
    border: 1px solid var(--rpivot-inspector-border);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    z-index: 1000;
    padding: 4px;
    text-transform: none;
    letter-spacing: normal;
}
.rpivot-add-field-dropdown::-webkit-scrollbar {
    width: 4px;
}
.rpivot-add-field-dropdown::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 2px;
}

.rpivot-add-field-item {
    display: flex;
    align-items: center;
    padding: 4px 6px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 11px;
    font-weight: 400;
    color: var(--rpivot-inspector-text);
    transition: background-color 0.1s;
}
.rpivot-add-field-item:hover {
    background-color: rgba(59, 130, 246, 0.08);
}
.rpivot-add-field-item .rpivot-field-type-icon {
    width: 14px;
    height: 14px;
    margin-right: 4px;
    font-size: 9px;
}
.rpivot-add-field-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rpivot-add-field-empty {
    padding: 12px 8px;
    text-align: center;
    font-size: 12px;
    color: var(--rpivot-inspector-text-muted);
    font-weight: 400;
}

.rpivot-section-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    /* padding: 6px 8px 8px; */
    padding: 2px 0px;
    overflow-y: auto;
    min-height: 0;
    position: relative;
}
.rpivot-section-content::-webkit-scrollbar {
    width: 4px;
}
.rpivot-section-content::-webkit-scrollbar-track {
    background: transparent;
}
.rpivot-section-content::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 2px;
}
.rpivot-section-content::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

.rpivot-field-placed {
    transform: scale(0.96);
    outline: 1.5px dashed #fb7185;
    outline-offset: -1.5px;
    background-color: rgba(251, 113, 133, 0.06);
    transition: transform 0.15s, outline 0.15s, background-color 0.15s;
}

.rpivot-section-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 8px;
    color: var(--rpivot-inspector-text-muted);
    font-size: 13px;
}
.rpivot-section-empty-icon {
    font-size: 18px;
    margin-bottom: 4px;
    opacity: 0.5;
}
.rpivot-section-empty-text {
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.5px;
}
.rpivot-inspector-all-field-section {
    flex: 1;
    border-style: solid;
}
.rpivot-inspector-all-field-section .rpivot-section-header {
    /* background-color: transparent; */
}
.rpivot-inspector-all-field-section .rpivot-section-content {
    max-height: none;
}
.rpivot-inspector-all-field.used {
    font-weight: bold;
}

.rpivot-inspector-all-field-search {
    display: flex;
    align-items: center;
    width: calc(100% - 12px);
    padding: 4px 8px;
    margin: 6px 6px 2px;
    background-color: var(--rpivot-inspector-section-bg);
    border: 1px solid #aac;
    border-radius: 2px;
    box-sizing: border-box;
}
.rpivot-inspector-all-field-search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--rpivot-inspector-text-muted);
    margin-right: 6px;
}
.rpivot-inspector-all-field-search-icon svg {
    width: 14px;
    height: 14px;
}
.rpivot-inspector-all-field-search-input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 13px;
    color: var(--rpivot-inspector-text);
    outline: none;
}
.rpivot-inspector-all-field-search-input::placeholder {
    color: var(--rpivot-inspector-text-muted);
}
.rpivot-dimension-field-section {
}
.rpivot-dimension-field {
    justify-content: space-between;
}.rpivot-filter-field-section {
}

.rpivot-filter-field {
    justify-content: space-between;
}

.rpivot-value-field-section {
}

.rpivot-value-field {
    justify-content: space-between;
}
.rpivot-field-panel-body {
    padding-right: 1px;
    background-color: var(--rpivot-inspector-bg);
}

.rpivot-inspector-sections {
    display: grid;
    /* grid-template-columns: 0.7fr 1fr 1fr;
    grid-template-rows: minmax(120px, 1fr) minmax(120px, 1fr); */
    gap: 8px;
    padding: 8px;
    min-height: 100%;
    box-sizing: border-box;
    position: relative;
    /* background-color: var(--rpivot-inspector-bg); */
}

/* top-grid 레이아웃 */
.rpivot-field-panel-body .rpivot-inspector-sections {
    grid-template-columns: 1fr 1fr;
    /* grid-template-rows: minmax(120px, 1fr) minmax(120px, 0.5fr) minmax(120px, 0.5fr); */
    grid-template-rows: 1fr 0.5fr 0.5fr;
}
.rpivot-field-panel-body .rpivot-inspector-sections .rpivot-inspector-all-field-section {
    grid-column: 1 / 3;
    grid-row: 1;
}

/* left-sidebar 레이아웃 */
.rpivot-field-panel-body .rpivot-inspector-sections[data-layout="leftSidebar"] {
    /* grid-template-columns: minmax(180px, 0.7fr) minmax(220px, 1fr); */
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 1fr);
    /* min-width: 428px; */
}
.rpivot-field-panel-body .rpivot-inspector-sections[data-layout="leftSidebar"] .rpivot-inspector-all-field-section {
    grid-column: 1;
    grid-row: 1 / 5;
}

/* single-column 레이아웃 */
.rpivot-field-panel-body .rpivot-inspector-sections[data-layout="singleColumn"] {
    /* grid-template-columns: minmax(180px, 0.7fr) minmax(220px, 1fr); */
    grid-template-columns: 1fr;
    grid-template-rows: 1.5fr, repeat(4, 1fr);
    /* min-width: 428px; */
}
.rpivot-field-panel-body .rpivot-inspector-sections[data-layout="singleColumn"] .rpivot-inspector-all-field-section {
    grid-column: 1;
    grid-row: 1;
}.rpivot-field-panel {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 13px;
    color: #333;
}
.rpivot-field-panel-content {
    flex-grow: 1;
    height: 100%;
    box-sizing: border-box;
    padding: 0;
    overflow: hidden;
}
.rpivot-field-panel-content--placeholder {
    background-color: var(--rpivot-inspector-bg);
}
.rpivot-field-panel-header--placeholder .rpivot-field-panel-layout-btns {
    display: none;
}
.rpivot-field-panel-placeholder-body {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.rpivot-field-panel-placeholder-text {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
}

.rpivot-field-panel-tab {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    flex: 0 0 24px;
    border-left: 1px solid var(--rpivot-inspector-border);
    background-color: #f0f0f0;
}
.rpivot-field-panel-tab-button {
    width: 100%;
    padding: 12px 0;
    border: none;
    border-radius: 0;
    background: transparent;
    color: #475569;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.2px;
    writing-mode: sideways-rl;
    cursor: pointer;
}
.rpivot-field-panel-tab-button:hover {
    background-color: #e2e8f0;
}
.rpivot-field-panel-tab-button--active {
    background-color: #fff;
    color: #0f17dd;
    border-left: 2px solid #0f17dd;
}
.rpivot-field-panel-tab-button:focus-visible {
    outline: 2px solid var(--rpivot--inpsector-accent);
    outline-offset: -2px;
}

.rpivot-field-panel--left .rpivot-field-panel-tab {
    order: -1;
    border-left: none;
    border-right: 1px solid var(--rpivot-inspector-border);
}
.rpivot-field-panel--modal .rpivot-field-panel-tab {
    display: none;
}
.rpivot-filter-panel {
    gap: 12px;
    padding: 8px 10px;
}
.rpivot-filter-panel-data {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 2px 0px;
    /* background-color: #f0f0f0; */
}
.rpivot-filter-panel-empty {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f5f5f5;
    color: #888;
    font-size: 13px;
}
.rpivot-filter-panel-empty::before {
    content: "설정된 공통 필터가 없습니다";
}.rpivot-ai-panel {
    gap: 12px;
    padding: 8px 8px;
}.rpivot-dockable-splitter {
    width: 3px;
    border-right: none;
    border-left: 2px solid var(--rpivot-dockable-splitter-bd);
    flex-shrink: 0;
}
.rpivot-dockable-splitter:hover {
    border: none;
}
.rpivot-dockable-splitter.rpivot-splitter-ghost {
    opacity: 0.9;
}
.rpivot-dockable--left .rpivot-dockable-splitter {
    border-left: none;
    border-right: 2px solid var(--rpivot-dockable-splitter-bd);
}

.rpivot-dockable-ghost-panel {
    position: fixed;
    box-sizing: border-box;
    pointer-events: none;
    z-index: 9999;
    border: 1px dashed var(--rpivot-ghost-panel-bd);
    background-color: var(--rpivot-ghost-panel-bg);
    box-shadow: 0 0 0 1px var(--rpivot-ghost-panel-sd);
}
.rpivot-dockable-ghost-source {
    /* opacity: 0.35; */
    pointer-events: none;
}
.rpivot-dockable-drag-ghost {
    position: absolute;
    z-index: 200;
    background: var(--rpivot-drag-ghost-bg);
    border: 2px dashed var(--rpivot-drag-ghost-bd);
    border-radius: 4px;
    pointer-events: none;
}
.rpivot-dockable-dock-preview {
    background: var(--rpivot-dock-preview-bg);
    border: 2px solid var(--rpivot-dock-preview-bd);
    border-radius: 0;
    transition: left 80ms ease-out, width 80ms ease-out;
}
.rpivot-dockable--float {
    position: absolute;
    z-index: 100;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2);
    border: 1px solid #a0aec0;
    border-radius: 6px;
    overflow: hidden;
}.rpivot-inspector {
    min-width: var(--rpivot-inspector-min-width);
    background-color: var(--rpivot-inspector-bg);
    color: var(--rpivot-inspector-color);
}

.rpivot-inspector-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    padding: 5px 6px;
    cursor: move;
}
.rpivot-dockable--float .rpivot-inspector-header {
    cursor: default;
}
.rpivot-inspector-header .rpivot-button-bar button {
    font-size: 14px;
}
.rpivot-inspector-header button:hover {
    background-color: #e0e0e0;
}
.rpivot-inspector-header .rpivot-inspector-menu {
    margin-left: auto;
    background-image: var(--rpivot-menu-bg);
    background-size: 13px 13px;
}
.rpivot-inspector-header .rpivot-inspector-close {
    margin-left: 2px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 4l8 8M12 4l-8 8' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-size: 16px 16px;
}
.rpivot-inspector-header .rpivot-inspector-float {
    margin-left: 2px;
    background-size: 17px 17px;
}
/* Docked 상태: 분리(undock) 액션을 의미 — 겹쳐진 두 사각형 */
.rpivot-inspector-header .rpivot-inspector-float--docked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Crect x='5.5' y='2.5' width='8' height='8' rx='1.5' fill='none' stroke='%23555' stroke-width='1.2'/%3E%3Crect x='2.5' y='5.5' width='8' height='8' rx='1.5' fill='%23fff' stroke='%23555' stroke-width='1.2'/%3E%3C/svg%3E");
}
/* Floating 상태: 도킹 액션을 의미 — 우측 도크 표시 */
.rpivot-inspector-header .rpivot-inspector-float--undocked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Crect x='2.5' y='2.5' width='11' height='11' rx='1' fill='none' stroke='%23555' stroke-width='1.2'/%3E%3Crect x='9' y='2.5' width='4.5' height='11' fill='%23555' opacity='0.25' stroke='none'/%3E%3Cline x1='9' y1='2.5' x2='9' y2='13.5' stroke='%23555' stroke-width='1.2'/%3E%3C/svg%3E");
}

.rpivot-inspector-titlebar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    background: linear-gradient(to bottom, #f5f7fa, #e7ebf0);
    border-bottom: 1px solid var(--rpivot-inspector-border);
    cursor: move;
    user-select: none;
    font-size: 11px;
    color: #555;
    font-weight: 600;
}
.rpivot-inspector-titlebar-label {
    flex: 1;
}

/* ===== Floating mode ===== */
.rpivot-inspector--float {
    position: absolute;
    z-index: 100;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2);
    border: 1px solid #a0aec0;
    border-radius: 6px;
    overflow: hidden;
}

.rpivot-inspector-resize {
    position: absolute;
    z-index: 1;
}
.rpivot-inspector-resize--n { top: -3px; left: 6px; right: 6px; height: 6px; }
.rpivot-inspector-resize--s { bottom: -3px; left: 6px; right: 6px; height: 6px; }
.rpivot-inspector-resize--e { top: 6px; bottom: 6px; right: -3px; width: 6px; }
.rpivot-inspector-resize--w { top: 6px; bottom: 6px; left: -3px; width: 6px; }
.rpivot-inspector-resize--ne { top: -3px; right: -3px; width: 10px; height: 10px; }
.rpivot-inspector-resize--nw { top: -3px; left: -3px; width: 10px; height: 10px; }
.rpivot-inspector-resize--se { bottom: -3px; right: -3px; width: 10px; height: 10px; }
.rpivot-inspector-resize--sw { bottom: -3px; left: -3px; width: 10px; height: 10px; }.rpivot-ai-container {
    min-width: var(--rpivot-ai-container-min-width);
    background-color: var(--rpivot-ai-container-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 13px;
    color: var(--rpivot-ai-container-color);
}

.rpivot-ai-container .rpivot-ai-prompter-response {
    border-top: transparent;
}

.rpivot-ai-container-header {
    padding: 5px 6px;
    cursor: move;
    border-bottom: 1px solid var(--rpivot-ai-container-header-bd);
}

.rpivot-ai-container-title {
    font-size: 14px;
}
.rpivot-ai-container-header .rpivot-ai-container-menu {
    margin-left: auto;
    background-image: var(--rpivot-menu-bg);
    background-size: 13px 13px;
}
.rpivot-ai-container-header .rpivot-ai-container-close {
    margin-left: 2px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 4l8 8M12 4l-8 8' stroke='%23555' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-size: 16px 16px;
}

.rpivot-ai-container-titlebar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    background: linear-gradient(to bottom, #f5f7fa, #e7ebf0);
    border-bottom: 1px solid var(--rpivot-ai-container-border);
    cursor: move;
    user-select: none;
    font-size: 11px;
    color: #555;
    font-weight: 600;
}
.rpivot-ai-container-titlebar-label {
    flex: 1;
}

/* ===== Floating mode ===== */
.rpivot-ai-container-resize {
    position: absolute;
    z-index: 1;
}
.rpivot-ai-container-resize--n {
    top: -3px;
    left: 6px;
    right: 6px;
    height: 6px;
}
.rpivot-ai-container-resize--s {
    bottom: -3px;
    left: 6px;
    right: 6px;
    height: 6px;
}
.rpivot-ai-container-resize--e {
    top: 6px;
    bottom: 6px;
    right: -3px;
    width: 6px;
}
.rpivot-ai-container-resize--w {
    top: 6px;
    bottom: 6px;
    left: -3px;
    width: 6px;
}
.rpivot-ai-container-resize--ne {
    top: -3px;
    right: -3px;
    width: 10px;
    height: 10px;
}
.rpivot-ai-container-resize--nw {
    top: -3px;
    left: -3px;
    width: 10px;
    height: 10px;
}
.rpivot-ai-container-resize--se {
    bottom: -3px;
    right: -3px;
    width: 10px;
    height: 10px;
}
.rpivot-ai-container-resize--sw {
    bottom: -3px;
    left: -3px;
    width: 10px;
    height: 10px;
}.rpivot-indicator {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 0px;
    background-color: rgba(248, 250, 252, 0.7);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    z-index: 999;
    pointer-events: all;
}

/* Spinner */
.rpivot-spinner-indicator {
    flex-direction: column;
    gap: 12px;
}

.rpivot-spinner-indicator > .rpivot-indicator-spinner {
    width: 38px;
    height: 38px;
    border: 3px solid rgba(99, 102, 241, 0.18);
    border-top-color: #6366f1;
    border-radius: 50%;
    animation: rpivot-indicator-spin 0.9s linear infinite;
}

.rpivot-spinner-indicator > .rpivot-indicator-label {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #475569;
}

.rpivot-spinner-indicator > .rpivot-indicator-label.rpivot-indicator-label-anim::after {
    content: '';
    display: inline-block;
    width: 1.2em;
    text-align: left;
    animation: rpivot-indicator-dots 1.2s steps(4, end) infinite;
}

@keyframes rpivot-indicator-dots {
    0%   { content: ''; }
    25%  { content: '.'; }
    50%  { content: '..'; }
    75%, 100% { content: '...'; }
}

@keyframes rpivot-indicator-spin {
    to { transform: rotate(360deg); }
}

/* Progress */
.rpivot-progress-indicator {
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.rpivot-progress-indicator > .rpivot-indicator-label {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #475569;
    text-align: center;
}

.rpivot-progress-indicator > .rpivot-indicator-track {
    width: 60%;
    max-width: 240px;
    min-width: 120px;
    height: 6px;
    background-color: rgba(99, 102, 241, 0.18);
    border-radius: 3px;
    overflow: hidden;
}

.rpivot-progress-indicator > .rpivot-indicator-track > .rpivot-indicator-bar {
    height: 100%;
    width: 0%;
    background-color: #6366f1;
    transition: width 0.15s ease-out;
}

.rpivot-progress-indicator > .rpivot-indicator-percent {
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    font-variant-numeric: tabular-nums;
    text-align: center;
    white-space: pre;
}
.rpivot-add-table-page {
    background: var(--rpivot-add-page-bg);
    box-sizing: border-box;
    /* border: 1px solid #999; */
    gap: 12px;
    padding: 20px;
}   

.rpivot-add-table-page-header {
    gap: 8px;
    color: var(--rpivot-add-page-color);
}
.rpivot-add-table-page-header span {
    white-space: nowrap;
}

.rpivot-add-table-page-footer {
    align-self: center;
    width: 100%;
    max-width: var(--rpivot-ai-prompter-prompt-width);
    gap: 2px;
    justify-content: flex-end;
    margin-top: -24px;
    background: transparent;
}
.rpivot-add-table-page-footer button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 30px;
    padding: 0 8px;
    font-size: 13px;
    color: #555;
    border: none;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}
.rpivot-add-table-page-footer button:hover {
    background-color: rgba(74, 144, 217, 0.10);
}

/** 대화 초기화 */
.rpivot-add-table-page-footer button.rpivot-add-table-page-clear {
    color: #777;
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-clear:hover {
    color: #333;
    background-color: rgba(0, 0, 0, 0.06);
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-clear:disabled {
    color: #b6bcc4;
    cursor: default;
    background-color: transparent;
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-clear::before {
    content: "";
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 4 1 10 7 10'/%3E%3Cpath d='M3.51 15a9 9 0 1 0 2.13-9.36L1 10'/%3E%3C/svg%3E");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-clear:disabled::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23b6bcc4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 4 1 10 7 10'/%3E%3Cpath d='M3.51 15a9 9 0 1 0 2.13-9.36L1 10'/%3E%3C/svg%3E");
}

/* primary: 테이블 생성 (활성화 시 채워진 배경으로 강조) */
.rpivot-add-table-page-footer button.rpivot-add-table-page-create {
    color: #ffffff;
    font-weight: 600;
    background-color: #4a90d9;
    box-shadow: 0 1px 3px rgba(74, 144, 217, 0.35);
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-create:hover {
    color: #ffffff;
    background-color: #3a7bc0;
    box-shadow: 0 2px 6px rgba(74, 144, 217, 0.45);
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-create:disabled {
    color: #b6bcc4;
    font-weight: 600;
    cursor: default;
    background-color: transparent;
    box-shadow: none;
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-create::before {
    content: "";
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: center;
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-create:disabled::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23b6bcc4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}

/* secondary: 닫기 (아이콘 + 라벨) */
.rpivot-add-table-page-footer button.rpivot-add-table-page-exit {
    color: #777;
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-exit:hover {
    color: #333;
    background-color: rgba(0, 0, 0, 0.06);
}
.rpivot-add-table-page-footer button.rpivot-add-table-page-exit::before {
    content: "";
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: center;
}

.rpivot-add-table-page .rpivot-ai-prompter-response {
    align-self: center;
    width: 100%;
    max-width: var(--rpivot-ai-prompter-response-width);
}
.rpivot-add-table-page .rpivot-ai-prompter-prompt {
    margin: 8px;
}
.rpivot-add-table-page .rpivot-ai-chat-suggestion {
    max-width: 320px;
}

.rpivot-add-table-page-splitter {
    flex: 0 0 auto;
    height: 3px;
    cursor: row-resize;
    /* background-color: var(--rpivot-splitter-bg); */
    box-sizing: border-box;
}
.rpivot-add-table-page-splitter:hover {
    background-color: var(--rpivot-splitter-ghost-bg);
}
.rpivot-add-table-page-ghost-pagel {
    position: fixed;
    box-sizing: border-box;
    pointer-events: none;
    z-index: 9999;
    background-color: var(--rpivot-ghost-pagel-bg);
    border: 1px dashed var(--rpivot-ghost-pagel-bd);
    box-shadow: 0 0 0 1px var(--rpivot-ghost-pagel-sd);
}
.rpivot-add-table-page-ghost-source {
    /* opacity: 0.35; */
    pointer-events: none;
}

