@charset "utf-8";

@import url("./fragments/footer.css");
@import url("./fragments/pagination.css");
@import url("./fragments/popup.css");

:root {
    --console-sunken: #141416;
    --console-bg: #19191B;
    --console-surface: #262629;
    --console-raised: #2E2E32;
    --console-border: #3B3B40;
    --console-text: #F2F2F4;
    --console-muted: #A9A9B1;
    --console-faint: #6E6E76;
    --g6-primary: #2D6AE3;
    --g6-primary-soft: #2D6AE326;
    --g6-primary-text: #7FA6F2;
    --cms-danger: #CE2434;
    --cms-on-primary: #FFFFFF;
    --cms-success: #00834A;
    --cms-success-text: #57BC8A;
    --cms-warning: #FFE019;

    --cms-primary: var(--g6-primary);
    --cms-primary-hover: var(--g6-primary);
    --cms-primary-foreground: var(--g6-primary);
    --cms-primary-focus: var(--g6-primary-text);
    --cms-primary-surface: var(--g6-primary-soft);
    --cms-primary-surface-hover: var(--g6-primary-soft);
    --cms-border: var(--console-border);
    --cms-divider: var(--console-border);
    --cms-row-divider: var(--console-border);
    --cms-success-surface: rgba(0, 131, 74, 0.15);
    --cms-progress: var(--g6-primary);
    --cms-progress-surface: var(--g6-primary-soft);
}

* {
    scrollbar-width: thin;
    scrollbar-color: var(--console-border) transparent;
}

*::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

*::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 8px;
    background: var(--console-border);
    background-clip: padding-box;
}

*::-webkit-scrollbar-thumb:hover {
    background: var(--console-faint);
    background-clip: padding-box;
}

*::-webkit-scrollbar-track {
    background: transparent;
}

input[type="radio"] {
    accent-color: var(--cms-primary);
}

.file-loading {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(11, 11, 12, 0.72);
    cursor: wait;
}

.file-loading-panel {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(100%, 400px);
    padding: 32px 28px 24px;
    border: 1px solid var(--console-border);
    border-radius: 14px;
    background: var(--console-surface);
    color: var(--console-text);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4);
}

.file-loading-mark {
    width: 30px;
    height: 32px;
    object-fit: contain;
}

.file-loading-title {
    margin: 18px 0 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
}

.file-loading-description {
    margin: 8px 0 20px;
    color: var(--console-muted);
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
}

.file-loading-progress {
    position: relative;
    display: block;
    overflow: hidden;
    width: 100%;
    height: 4px;
    border-radius: 2px;
    background: var(--console-raised);
}

.file-loading-progress::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 42%;
    border-radius: inherit;
    background: linear-gradient(90deg, transparent, var(--g6-primary), transparent);
    content: '';
    animation: file-loading-progress 1.4s ease-in-out infinite;
}

@keyframes file-loading-progress {
    from { transform: translateX(-100%); }
    to { transform: translateX(240%); }
}

@media (prefers-reduced-motion: reduce) {
    .file-loading-progress::before { animation: none; left: 29%; }
}
input::placeholder,
textarea::placeholder {
    font-size: 13px;
    color: #999;
}

select:not([multiple]) {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: 42px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25l5-5' fill='none' stroke='%23566471' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
}

/* 입력 행을 추가·정렬·삭제하는 설정 목록 */
:is(.code-detail-section, .ng-type-section) {
    margin-top: 20px;
}

.detail-info > :is(.code-detail-header, .ng-type-header) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 68px;
    height: auto;
    padding: 14px 18px;
    border-bottom: 1px solid #eeeaf0;
    box-sizing: border-box;
    background-color: #fff;
}

:is(.code-detail-header, .ng-type-header) h5 {
    color: #302a35;
    font-size: .98rem;
    font-weight: 700;
}

:is(.code-detail-header, .ng-type-header) p {
    margin-top: 4px;
    color: #828b93;
    font-size: .75rem;
}

:is(.code-detail-header, .ng-type-header) button {
    flex: none;
    height: 30px;
    padding: 0 12px;
    border: 1px solid #dbe0e5;
    border-radius: 6px;
    color: #566471;
    background-color: #fff;
    font-size: .75rem;
}

:is(.code-detail-header, .ng-type-header) button:is(:hover, :focus-visible) {
    border-color: var(--cms-primary-focus);
    color: var(--cms-primary-foreground);
}

:is(.code-detail-labels, .code-detail-row, .ng-type-labels, .ng-type-row) {
    display: grid;
    align-items: center;
    gap: 12px;
}

:is(.code-detail-labels, .ng-type-labels) {
    padding: 0 12px 9px;
    color: #566471;
    text-align: center;
    font-size: .75rem;
    font-weight: 600;
}

:is(.code-detail-labels, .ng-type-labels) > * {
    text-align: center;
}

:is(.code-detail-list, .ng-type-list) {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e5e8ec;
    border-radius: 8px;
    background-color: #fff;
}

:is(.code-detail-list, .ng-type-list)[hidden] {
    display: none;
}

:is(.code-detail-row, .ng-type-row) {
    padding: 11px 12px;
    border-bottom: 1px solid #e5e8ec;
    background-color: #fff;
}

:is(.code-detail-row, .ng-type-row):last-child {
    border-bottom: 0;
}

:is(.code-detail-row, .ng-type-row):hover {
    background-color: #fafafb;
}

:is(.code-detail-field, .ng-type-field) {
    min-width: 0;
}

:is(.code-detail-field, .ng-type-field) > label {
    display: none;
}

:is(.code-detail-row, .ng-type-row) :is(input, select) {
    box-sizing: border-box;
    width: 100%;
    height: 42px;
    padding: 0 12px;
    border: 1px solid #b7c1ca;
    border-radius: 7px;
    color: #333;
    background-color: #fff;
    font-size: .8125rem;
    line-height: normal;
    transition: border-color .2s ease, box-shadow .2s ease;
}

:is(.code-detail-row, .ng-type-row) input[readonly] {
    border-color: #d7dde2;
    color: #828b93;
    background-color: #f7f8f9;
    cursor: not-allowed;
}

:is(.code-detail-row, .ng-type-row) select {
    padding-right: 42px;
}

:is(.code-detail-row, .ng-type-row) input::placeholder {
    color: #aeb5bc;
}

:is(.code-detail-row, .ng-type-row) :is(input, select):focus {
    border-color: var(--cms-primary-focus);
    box-shadow: 0 0 0 3px #eee7f2;
    outline: 0;
}

:is(.code-detail-row, .ng-type-row) input[type="number"] {
    appearance: textfield;
}

:is(.code-detail-row, .ng-type-row) input[type="number"]::-webkit-inner-spin-button,
:is(.code-detail-row, .ng-type-row) input[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
}

:is(.code-detail-actions, .ng-type-actions) {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

:is(.code-detail-action, .ng-type-action) {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    color: #828b93;
    background-color: #f1f1f1;
    cursor: pointer;
    transition: color .2s ease, background-color .2s ease;
}

:is(.code-detail-action, .ng-type-action):not(:disabled):is(:hover, :focus-visible) {
    color: var(--cms-primary-foreground);
    background-color: var(--cms-primary-surface);
}

:is(.code-detail-action, .ng-type-action):disabled {
    color: #c3c9ce;
    background-color: #f7f8f9;
    cursor: default;
    pointer-events: none;
}

:is(.code-detail-remove, .ng-type-remove):not(:disabled):is(:hover, :focus-visible) {
    color: #b23838;
    background-color: #fbeaea;
}

:is(.empty-detail-message, .empty-ng-type-message) {
    margin-top: 10px;
    padding: 28px 12px;
    border: 1px dashed #d7dde2;
    border-radius: 8px;
    color: #828b93;
    background-color: #fafafb;
    text-align: center;
    font-size: .8125rem;
}

:is(.empty-detail-message, .empty-ng-type-message)[hidden] {
    display: none;
}

@media screen and (max-width: 760px) {
    .detail-info > :is(.code-detail-header, .ng-type-header) {
        height: 68px;
    }

    :is(.code-detail-labels, .ng-type-labels) {
        display: none;
    }

    :is(.code-detail-row, .ng-type-row) {
        grid-template-columns: 1fr;
        gap: 13px;
        padding: 15px;
    }

    :is(.code-detail-field, .ng-type-field) > label {
        display: block;
        margin-bottom: 7px;
        color: #828b93;
        font-size: .75rem;
        font-weight: 500;
    }

    :is(.code-detail-actions, .ng-type-actions) {
        grid-column: 1;
        justify-self: end;
    }
}

/* 체크박스 커스텀 */
input[type="checkbox"] {
    -webkit-appearance: none;
    position: relative;
    width: 17px;
    height: 17px;
    margin: 0;
    cursor: pointer;
    outline: none !important;
    vertical-align: middle;
    border: 1.5px solid #d8d1dc;
    border-radius: 3px;
    background: #fff;
}

input[type="checkbox"]::before {
    content: "";
    position: absolute;
    top: 44%;
    left: 50%;
    width: 4px;
    height: 8px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    opacity: 0;
    transform: translate(-50%, -50%) rotate(45deg);
    transition: opacity .12s ease;
}

input[type="checkbox"]:not(:disabled):hover {
    border-color: var(--cms-primary-focus);
}

input[type="checkbox"]:checked:disabled {
    background-color: #b4b4b4;
    border-color: #a7a7a7;
}

input[type="checkbox"]:checked {
    background-color: var(--cms-primary);
    border-color: var(--cms-primary-focus);
    color: var(--cms-on-primary);
}

input[type="checkbox"]:checked::before {
    opacity: 1;
}

.top-btn-box .left input[type="text"] {
    width: 300px;
}

.top-btn-box button {
    color: #fff;
    padding: 0px 15px;
    border-radius: 5px;
    height: 40px;
}

.top-btn-box button[type='submit'] {
    color: var(--cms-on-primary);
    background-color: var(--cms-primary);
    border: 1px solid var(--cms-primary-focus);
}

.top-btn-box button:not([type='submit']) {
    background-color: #b4b4b4;
    border: 1px solid #a7a7a7;
}

/*하단 버튼박스 */
.bot-btn-box {
    text-align: right;
    margin-bottom: 30px;
}

.bot-btn-box .left {
    float: left;
}

.bot-btn-box button {
    min-width: 60px;
    color: #fff;
    padding: 10px 5px;
    border-radius: 5px;
}

.bot-btn-box button[type='submit'] {
    color: var(--cms-on-primary);
    background-color: var(--cms-primary);
    border: 1px solid var(--cms-primary-focus);
}

.bot-btn-box button:not([type='submit']) {
    background-color: #b4b4b4;
    border: 1px solid #a7a7a7;
}

/* 테이블관련 */
table {
    table-layout:fixed;
    width: 100%;
}

table.table-top {
    border-top: 2px solid #000;
}

table thead {
    border-top: 2px solid #000;
}

table tr {
    border-bottom: 1px solid #d6d6d6;
}

table tr:hover {
    background: #fbfbfb;
}

table th, table td {
    padding: 8px 10px;
    line-height: 37px;
    overflow: hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
table th {
    background: #ededed;
}

table td.file {
    line-height: normal!important;
}

table td.file p a {
    text-decoration: underline;
    font-size: 14px;
}

table td.file p span {
    display: inline-block;
    background-color: #ededeb;
    border-radius: 4px;
    font-weight: 600;
    font-size: 13px;
    text-align: center;
    width: 20px;
    height: 20px;
    margin-left:5px;
    cursor: pointer;
}

table input[type="text"], table input[type="password"], table input[type="file"] {
    width: 100%;
    height: 37px;
    padding: 6px;
    border: 1px solid #d6d6d6;
    border-radius: 7px;
    outline: none;
    font-size: 14px;
}

table textarea {
    width: 100%;
    height: 370px;
    padding: 10px;
    border: 1px solid #d6d6d6;
    border-radius: 7px;
    outline: none;
    font-size: 14px;
    margin-bottom: -10px;
}

table select  {
    width: 100%;
    height: 38px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-left: 10px;
    padding-right: 10px;
    border: 1px solid #e2e2e2;
    border-radius: 7px;
    outline: none;
    font-size: 14px;
}

table .table-scroll {
    height: 350px;
    overflow-y: auto;
    word-break:break-all;
    line-height: normal;
}

/* 화면 제목 */
/* 레이아웃을 사용하는 화면의 공통 제목 영역 */
.page-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 106px;
    margin-bottom: 22px;
    padding: 18px 28px 18px 24px;
    border-left: 4px solid var(--cms-primary);
    border-radius: 12px;
    box-sizing: border-box;
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(30, 41, 59, 0.12);
}

.page-heading-copy {
    min-width: 0;
}

.page-heading h5 {
    color: #1E293B;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.3;
}

.page-heading-subtitle {
    margin-top: 5px;
    color: #566471;
    font-size: 0.875rem;
    line-height: 1.4;
}

.page-heading-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    min-width: 92px;
    height: 38px;
    padding: 0 16px;
    border: 1px solid #D8C7E8;
    border-radius: 6px;
    box-sizing: border-box;
    color: var(--cms-primary-foreground);
    background-color: transparent;
    font-size: 0.8125rem;
    font-weight: 600;
    transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.page-heading-action:hover,
.page-heading-action:focus-visible {
    color: var(--cms-primary-foreground);
    border-color: var(--cms-primary-focus);
    background-color: var(--cms-primary-surface);
    outline: none;
}

.page-heading-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.page-heading-action.primary {
    gap: 7px;
    border-color: var(--cms-primary);
    color: var(--cms-on-primary);
    background-color: var(--cms-primary);
}

.page-heading-action.primary:hover,
.page-heading-action.primary:focus-visible {
    border-color: var(--cms-primary-hover);
    color: var(--cms-on-primary);
    background-color: var(--cms-primary-hover);
}

@media screen and (max-width: 1024px) {
    .page-heading {
        min-height: 90px;
        padding: 17px 22px 17px 18px;
    }
}

@media screen and (max-width: 640px) {
    .page-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 16px;
    }

    .page-heading h5 {
        font-size: 1.25rem;
    }

    .page-heading .srch-set {
        width: 100%;
    }

    .page-heading-action {
        align-self: flex-end;
        width: auto;
    }
}

/* 목록·검색·테이블 */
/* 사용자·파일·코드 목록 화면 공통 스타일 */

.srch-set {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 1px;
}

.srch-set select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: 38px;
    border-radius: 6px;
    border: 1px solid #DBE0E5;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25l5-5' fill='none' stroke='%23566471' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 8px;
    width: fit-content;
    min-width: 92px;
    padding: 0 38px 0 10px;
    font-size: 0.8125rem;
    line-height: normal;
}

.srch-set input {
    display: flex;
    align-items: center;
    width: 230px;
    height: 38px;
    border-radius: 6px;
    border: 1px solid #DBE0E5;
    background-color: #fff;
    padding: 0 44px 0 9px;
    font-size: 0.75rem;
    box-sizing: border-box;
}

.srch-set > div {
    position: relative;
}

.srch-set > div button {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    border: 0;
    background: transparent;
}

.srch-set > div button i {
    font-size: 1.125rem;
    color: #6d6d6d;
    transition: color 0.3s ease-in-out;
}

.srch-set > div button:hover i {
    color: var(--cms-primary-foreground);
}

/* 상세 화면 AJAX 목록 공통 페이지네이션 */
.table-wrap {
    border: 1px solid var(--cms-border);
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(30, 41, 59, 0.12);
}

/* 콘솔 목록 화면 공통 스타일 */
.console-list-page .table-wrap {
    overflow: hidden;
    border: 1px solid var(--console-border);
    border-radius: 10px;
    background-color: var(--console-surface);
    box-shadow: none;
}

.console-list-page .table-toolbar {
    min-height: 56px;
    padding: 8px 20px;
    border-bottom-color: var(--console-border);
    background-color: var(--console-surface);
}

.console-list-page .table-toolbar h6 {
    display: flex;
    align-items: baseline;
    gap: 8px;
    color: var(--console-text);
    font-size: 13px;
    font-weight: 600;
}

.console-list-page .table-toolbar h6 .list-total {
    color: var(--console-faint);
    font-size: 11px;
}

.console-list-page .list-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--console-muted);
    background-color: var(--console-surface);
    font-size: 11px;
    text-align: left;
}

.console-list-page .list-table thead {
    border: 0;
    box-shadow: inset 0 -1px var(--console-border);
}

.console-list-page .list-table thead th {
    height: 36px;
    padding: 0 20px;
    border: 0;
    background-color: var(--console-sunken);
    color: var(--console-faint);
    font-size: 10px;
    font-weight: 500;
    text-align: left;
}

.console-list-page .list-table thead th::after {
    display: none;
}

.console-list-page .list-table tbody {
    background-color: var(--console-surface);
}

.console-list-page .list-table tbody tr {
    height: 48px;
    background-color: var(--console-surface);
}

.console-list-page .list-table tbody td {
    padding: 0 20px;
    border-bottom: 1px solid var(--console-border);
    background-color: var(--console-surface);
    color: var(--console-muted);
}

.console-list-page .list-table tbody tr:last-child td {
    border-bottom: 0;
}

.console-list-page .list-table th:first-child,
.console-list-page .list-table td:first-child,
.console-list-page .list-table th:last-child,
.console-list-page .list-table td:last-child {
    width: auto;
    overflow: hidden;
    text-overflow: ellipsis;
}

.console-list-page .list-table tbody tr.clickable-row:hover td {
    background-color: var(--console-raised);
}

.collection-history-table .collection-history-fps {
    color: var(--cms-warning);
}

.collection-history-table .collection-history-count strong {
    color: var(--g6-primary-text);
    font-weight: inherit;
}

.console-list-page .inference-count-value {
    display: inline-block;
    white-space: nowrap;
}

.console-list-page .inference-total-count {
    color: var(--g6-primary-text);
}

.console-list-page .inference-ok-count {
    color: var(--cms-success-text);
    font-weight: 700;
}

.console-list-page .inference-ng-count {
    color: #f16a78;
    font-weight: 700;
}

.console-list-page .inference-confidence-value {
    display: inline-block;
    white-space: nowrap;
}

.console-list-page .inference-confidence-number {
    color: var(--cms-warning);
}

.console-list-page .network-badge.is-connected {
    color: #7FA6F2;
    background-color: rgba(45, 106, 227, 0.2);
}

.console-list-page .network-badge.is-disconnected {
    color: var(--console-muted);
    background-color: var(--console-raised);
}

.console-list-page .job-badge.is-running {
    color: var(--cms-success-text);
    background-color: var(--cms-success-surface);
}

.console-list-page .job-badge.is-stopping {
    color: #7FA6F2;
    background-color: rgba(45, 106, 227, 0.2);
}

.console-list-page .job-badge.is-idle {
    color: var(--console-muted);
    background-color: var(--console-raised);
}

.console-list-page .job-badge.is-error {
    color: #ed6671;
    background-color: rgba(206, 36, 52, 0.15);
}

.console-list-page .use-badge.is-use {
    color: #31c88a;
    background-color: rgba(0, 131, 74, 0.2);
}

.console-list-page .use-badge.is-unused {
    color: var(--console-muted);
    background-color: var(--console-raised);
}

.console-list-page .del-btn {
    border-color: rgba(206, 36, 52, 0.55);
    color: #ed6671;
    background-color: transparent;
}

.console-list-page .del-btn:hover,
.console-list-page .del-btn:focus-visible {
    border-color: #ed6671;
    color: #ff8790;
    background-color: rgba(206, 36, 52, 0.12);
}

.console-list-page .settings-btn {
    border-color: rgba(45, 106, 227, 0.45);
    color: var(--g6-primary-text);
    background-color: rgba(45, 106, 227, 0.12);
}

.console-list-page .settings-btn:hover,
.console-list-page .settings-btn:focus-visible {
    border-color: var(--g6-primary);
    color: var(--console-text);
    background-color: rgba(45, 106, 227, 0.28);
    outline: none;
}

.console-list-page .no-celldata {
    background-color: var(--console-surface);
    color: var(--console-muted);
}

.console-list-page .list-toolbar-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-left: auto;
}

.console-list-page .list-toolbar-action {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 82px;
    height: 34px;
    padding: 0 11px;
    border: 1px solid var(--console-border);
    border-radius: 6px;
    color: var(--console-text);
    background-color: var(--console-raised);
    font-size: 11px;
    font-weight: 600;
}

.console-list-page .list-toolbar-action:hover,
.console-list-page .list-toolbar-action:focus-visible {
    border-color: var(--g6-primary);
    color: var(--g6-primary-text);
    outline: none;
}

/* 어두운 콘솔 등록 폼 공통 구성 */
.console-form {
    overflow: hidden;
    border: 1px solid var(--console-border);
    border-radius: 8px;
    background-color: var(--console-surface);
}

.console-form-section + .console-form-section {
    border-top: 1px solid var(--console-border);
}

.console-form-heading {
    padding: 18px 20px 0;
}

.console-form-heading h2 {
    margin: 0;
    color: var(--console-text);
    font-size: 13px;
    font-weight: 600;
}

.console-form-heading p {
    margin: 3px 0 0;
    color: var(--console-muted);
    font-size: 11px;
    line-height: 1.5;
}

.console-form-body {
    display: grid;
    gap: 12px;
    padding: 14px 20px 18px;
}

.console-form-grid {
    display: grid;
    grid-template-columns: var(--form-columns, repeat(2, minmax(0, 1fr)));
    align-items: start;
    gap: 12px;
    min-width: 0;
}

.console-form-field {
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.console-form-field > label {
    margin: 0 0 5px;
    padding: 0;
    color: var(--console-muted);
    font-size: 10px;
    font-weight: 500;
}

.console-form-field input,
.console-form-field select,
.console-form-field textarea {
    width: 100%;
    min-width: 0;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid var(--console-border);
    border-radius: 5px;
    box-sizing: border-box;
    color: #fff;
    background-color: var(--console-sunken);
    font: inherit;
    font-size: 12px;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.console-form-field select {
    color-scheme: dark;
}

.console-form-field input:-webkit-autofill,
.console-form-field input:-webkit-autofill:hover,
.console-form-field input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px var(--console-sunken) inset;
    -webkit-text-fill-color: #fff;
    caret-color: #fff;
}

.console-form-field input[readonly] {
    color: var(--console-muted);
    background-color: var(--console-surface);
}

.console-form-field input:disabled {
    color: var(--console-faint);
    background-color: var(--console-raised);
    cursor: not-allowed;
}

.console-form-field input:disabled:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px var(--console-raised) inset;
    -webkit-text-fill-color: var(--console-faint);
}

.console-form-field textarea {
    min-height: 100px;
    padding: 12px;
    resize: vertical;
}

.console-form-field input::placeholder,
.console-form-field textarea::placeholder {
    color: var(--console-faint);
    opacity: 1;
}

.console-form-field input:focus,
.console-form-field select:focus,
.console-form-field textarea:focus {
    border-color: var(--g6-primary);
    box-shadow: 0 0 0 2px var(--g6-primary-soft);
    outline: none;
}

.console-form-field > small {
    margin-top: 4px;
    color: var(--console-muted);
    font-size: 11px;
    line-height: 1.4;
}

.required-mark {
    color: #ed6671;
}

.console-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    min-height: 44px;
    padding: 10px 20px;
    border-top: 1px solid var(--console-border);
    background-color: var(--console-surface);
}

.console-form-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 auto 0 0;
    color: var(--console-muted);
    font-size: 11px;
}

.console-form-meta > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-right: 12px;
}

.console-form-meta dt,
.console-form-meta dd {
    margin: 0;
    font-weight: 400;
}

.console-form-action-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
    margin-left: auto;
}

.console-form-cancel,
.console-form-submit,
.console-form-warning {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 62px;
    height: 32px;
    padding: 0 10px;
    border: 1px solid var(--console-border);
    border-radius: 5px;
    box-sizing: border-box;
    color: var(--console-muted);
    background-color: transparent;
    font-size: 11px;
    font-weight: 500;
}

.console-form-cancel:hover,
.console-form-cancel:focus-visible {
    border-color: var(--console-muted);
    color: var(--console-text);
    background-color: var(--console-raised);
    outline: none;
}

.console-form-submit {
    border-color: var(--g6-primary);
    color: var(--g6-primary-text);
    background-color: transparent;
    cursor: pointer;
}

.console-form-submit:hover,
.console-form-submit:focus-visible {
    border-color: #4a82ea;
    background-color: var(--g6-primary-soft);
    outline: none;
}

.console-form-warning {
    border-color: var(--cms-warning);
    color: var(--cms-warning);
}

.console-form-warning:hover,
.console-form-warning:focus-visible {
    background-color: rgba(255, 224, 25, 0.15);
    outline: none;
}

@media screen and (max-width: 760px) {
    .console-form-meta {
        flex-basis: 100%;
    }

    .console-form-heading {
        padding-right: 12px;
        padding-left: 12px;
    }

    .console-form-body {
        padding-right: 12px;
        padding-left: 12px;
    }

    .console-form-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .console-form-field input,
    .console-form-field select,
    .console-form-field textarea {
        min-height: 40px;
    }

    .console-form-field textarea {
        min-height: 100px;
    }
}

@media screen and (min-width: 761px) and (max-width: 1200px) {
    .console-list-page .list-table thead th,
    .console-list-page .list-table tbody td {
        padding-right: 8px;
        padding-left: 8px;
    }
}

.table-toolbar {
    position: sticky;
    left: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 72px;
    padding: 10px 16px 10px 20px;
    border-bottom: 1px solid var(--cms-divider);
    box-sizing: border-box;
    background-color: var(--cms-primary-surface);
}

.table-toolbar h6 {
    color: #1E293B;
    font-size: 1.125rem;
    font-weight: 700;
    white-space: nowrap;
}

.table-toolbar h6 .list-total {
    color: var(--console-faint);
    font-size: 0.75rem;
    font-weight: 400;
}

.table-toolbar .srch-set {
    margin: 0;
}

.list-table {
    width: 100%;
    font-size: 0.8125rem;
    text-align: center;
    border-collapse: collapse;
    table-layout: auto;
}

.list-table thead {
    border-bottom: 1px solid var(--cms-divider);
    border-top: 0;
}

.list-table thead th {
    height: 44px;
    padding: 0 17px;
    position: relative;
    background-color: var(--cms-primary-surface);
    color: #625b67;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.4;
    overflow: visible;
    text-overflow: clip;
    vertical-align: middle;
    white-space: nowrap;

}

.list-table thead th:after {
    position: absolute;
    content: "";
    background-color: var(--cms-divider);
    width: 1px;
    height: calc(100% - 30px);
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.list-table thead th:last-child:after {
    display: none;
}

.list-table tbody {
    background: #fff;
}

.list-table tbody tr {
    height: 58px;
    border-bottom: 1px solid var(--cms-row-divider);
    cursor: default;
    background-color: #fff;
}

.list-table tbody tr.clickable-row {
    cursor: pointer;
}

.list-table tbody tr.clickable-row:focus-visible {
    outline: 2px solid var(--cms-primary-focus);
    outline-offset: -2px;
}

.list-table tbody tr:last-child {
    border-bottom: 0;
}

.list-table tbody td {
    padding: 10px;
    transition: background 0.3s ease-in-out;
    color: #333;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.list-table tbody tr.clickable-row:hover td {
    background: var(--cms-primary-surface-hover);
}

/* 설정·삭제 버튼 위에서는 행 선택 호버를 표시하지 않는다. */
.list-table tbody tr.clickable-row:has(.settings-btn:hover, .save-btn:hover, .del-btn:hover) td {
    background: #fff;
}

.right-side.console-list-page .list-table tbody tr.clickable-row:hover td {
    background-color: var(--console-raised);
}

.right-side.console-list-page .list-table tbody tr.clickable-row:has(.settings-btn:hover, .save-btn:hover, .del-btn:hover) td {
    background-color: var(--console-raised);
}

.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    padding: 4px 7px;
    border-radius: 20px;
    font-size: .64rem;
    font-weight: 600;
    line-height: 1;
}

.status-badge.ok {
    color: var(--cms-success);
    background: var(--cms-success-surface);
}

.status-badge.completed {
    color: var(--cms-success-text);
    background: var(--cms-success-surface);
}

.status-badge.running {
    color: var(--g6-primary-text);
    background: var(--g6-primary-soft);
}

.status-badge.ng,
.status-badge.error {
    color: #bd4444;
    background: #fcecec;
}

.network-badge,
.job-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    box-sizing: border-box;
    font-size: .72rem;
    font-weight: 700;
}

.network-badge::before,
.job-badge::before {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    content: "";
}

.network-badge.is-connected { color: #277949; background: #eef8f2; }

.job-badge.is-completed {
    color: var(--cms-success-text);
    background: var(--cms-success-surface);
}

.network-badge.is-disconnected,
.job-badge.is-error { color: #c53b3b; background: #fff0f0; }

.job-badge.is-running {
    color: var(--cms-success-text);
    background: var(--cms-success-surface);
}

.job-badge.is-stopping { color: #2764a5; background: #eef5fc; }

.job-badge.is-idle { color: #6d6672; background: #f2f0f3; }

.use-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 26px;
    padding: 0 8px;
    border-radius: 13px;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: normal;
}

.use-badge.is-use {
    color: #257249;
    background-color: #E7F6EE;
}

.use-badge.is-unused {
    color: #707982;
    background-color: #EEF0F2;
}

.list-table th:first-child,
.list-table td:first-child,
.list-table th:last-child,
.list-table td:last-child {
    width: 1%;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}

.list-table td:last-child p {
    padding: 8px;
    border-radius: 7px;
    width: fit-content;
    font-weight: 500;
    margin: 0 auto;
}

.func-wrap {
    margin-top: 23px;
    display: flex;
    justify-content: space-between;
}

.btn-area {
    display: flex;
    align-items: center;
    gap: 5px;
}

.btn-area button {
    display: flex;
    font-size: 0.875rem;
    background-color: var(--cms-primary);
    color: var(--cms-on-primary);
    justify-content: center;
    align-items: center;
    height: 32px;
    border: 0;
    border-radius: 7px;
    padding: 0 11px;
}

.btn-area button:hover,
.submit-btn:hover {
    background-color: var(--cms-primary-hover);
}

.del-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 58px;
    height: 29px;
    background-color: #fff;
    color: #b84d4d;
    border: 1px solid #ebdada;
    border-radius: 6px;
    padding: 0 7px;
    margin: 0 auto;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1;
}

.del-btn:hover,
.del-btn:focus-visible {
    border-color: #dfbebe;
    color: #a83f3f;
    background-color: #fff5f5;
    outline: none;
}

.right-side.console-list-page .del-btn:hover,
.right-side.console-list-page .del-btn:focus-visible {
    border-color: #ed6671;
    color: #ff8790;
    background-color: rgba(206, 36, 52, 0.18);
    outline: none;
}

.settings-btn,
.save-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 58px;
    height: 29px;
    padding: 0 7px;
    border: 1px solid #cbe6d6;
    border-radius: 6px;
    color: #24754e;
    background-color: #fff;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1;
}

.del-btn > i,
.settings-btn > i,
.save-btn > i,
.btn-area button > i,
.submit-btn > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    height: 1em;
    line-height: 1;
}

.del-btn > i,
.settings-btn > i,
.save-btn > i {
    width: 12px;
}

.settings-btn:hover,
.settings-btn:focus-visible,
.save-btn:hover,
.save-btn:focus-visible {
    border-color: #9fd0b3;
    color: #17633e;
    background-color: #fff;
    outline: none;
}

.no-del-btn p {
    height: 29px;
}

.no-celldata {
    text-align: center;
    height: 150px;
    color: inherit;
    font-size: inherit;
    cursor: default;
    background-color: #fff;
}

.empty-state {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 120px;
    gap: 10px;
    color: var(--console-muted);
    font-size: 12px;
    line-height: 1.4;
}

.empty-state img {
    display: block;
    width: 24px;
    height: 24px;
    opacity: 0.7;
    filter: brightness(0) invert(0.68);
    object-fit: contain;
}

@media screen and (max-width: 1024px) {
    .srch-set {
        margin-top: 13px;
    }

    .table-toolbar {
        align-items: stretch;
        flex-direction: column;
        padding: 18px;
    }

    .table-toolbar .srch-set {
        margin-top: 0;
    }

    .console-list-page .list-toolbar-controls {
        width: 100%;
        margin-left: 0;
    }

    .console-list-page .list-toolbar-controls .list-toolbar-search {
        flex: 1 1 auto;
        min-width: 0;
    }

    .console-list-page .list-toolbar-controls .list-toolbar-search > div,
    .console-list-page .list-toolbar-controls .list-toolbar-search input {
        width: 100%;
    }

    .srch-set > div {
        width: 100%;
    }

    .srch-set input {
        width: 100%;
    }

    .table-wrap {
        position: relative;
        overflow-x: auto;
    }

    .list-table {
        width: 200%;
        min-width: 1200px;
        font-size: 0.75rem;
    }

    .list-table thead th {
        padding: 0 11px;
    }

    .list-table tbody td {
        padding: 10px 11px;
    }

    .list-table:not(.responsive-list-table) thead th:first-child,
    .list-table:not(.responsive-list-table) tbody td:first-child {
        position: sticky;
        width: 45px;
        left: 0;
        z-index: 1;
    }

    .list-table:not(.responsive-list-table) thead th:first-child {
        background-color: var(--cms-primary-surface);
    }

    .list-table:not(.responsive-list-table) tbody td:first-child {
        background-color: #fff;
    }

    .list-table:not(.responsive-list-table) thead th:nth-child(2),
    .list-table:not(.responsive-list-table) tbody td:nth-child(2) {
        position: sticky;
        width: 100px;
        left: 45px;
        z-index: 1;
    }

    .list-table:not(.responsive-list-table) thead th:nth-child(2) {
        background-color: var(--cms-primary-surface);
    }

    .list-table:not(.responsive-list-table) tbody td:nth-child(2) {
        background-color: #fff;
    }

    .list-table:not(.responsive-list-table) tbody tr.clickable-row:hover td:first-child,
    .list-table:not(.responsive-list-table) tbody tr.clickable-row:hover td:nth-child(2) {
        background-color: var(--cms-primary-surface-hover);
    }

    .list-table:not(.responsive-list-table) tbody tr.clickable-row:has(.settings-btn:hover, .save-btn:hover, .del-btn:hover) td:first-child,
    .list-table:not(.responsive-list-table) tbody tr.clickable-row:has(.settings-btn:hover, .save-btn:hover, .del-btn:hover) td:nth-child(2) {
        background-color: #fff;
    }
}

/* 등록·수정 폼 */
/* 사용자·파일·코드 등록 및 편집 화면 공통 스타일 */

.tit {
    margin-bottom: 29px;
}

.tit p {
    display: flex;
    align-items: center;
    gap: 4px;
    color: #566471;
    font-size: 0.875rem;
    margin-bottom: 5px;
}

.tit p i {
    font-size: 0.75rem;
}

.tit h5 {
    color: #1C222A;
    font-size: 1.8125rem;
    font-weight: 500;
}

.detail-info {
    border: 1px solid var(--cms-border);
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(30, 41, 59, 0.12);
}

.detail-info > h5 {
    display: flex;
    align-items: center;
    height: 72px;
    padding: 0 19px;
    box-sizing: border-box;
    color: #302A35;
    font-size: 1.125rem;
    font-weight: 700;
    border-bottom: 1px solid var(--cms-divider);
    background-color: var(--cms-primary-surface);
}

.detail-info > div {
    padding: 19px;
}

.divide {
    display: flex;
    gap: 2%;
}

.detail-set {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-bottom: 24px;
}

.detail-set label {
    color: #828B93;
    margin-bottom: 8px;
    font-size: 0.8125rem;
}

.detail-set input,
.detail-set select {
    width: 100%;
    height: 47px;
    padding: 0 12px;
    border: 1px solid #B7C1CA;
    border-radius: 8px;
    background-color: #fff;
    font-size: 0.8125rem;
    line-height: normal;
    box-sizing: border-box;
}

.detail-set select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0 42px 0 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25l5-5' fill='none' stroke='%23566471' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
}

.detail-set select:disabled {
    color: #566471;
    background-color: #f3f5f7;
}

.detail-set input::placeholder,
.detail-set textarea::placeholder {
    color: #ccc;
}

.form-error {
    color: #d93025;
    font-size: 0.8125rem;
}

@media screen and (max-width: 1024px) {
    .tit {
        margin-bottom: 16px;
    }

    .tit p {
        margin-bottom: 3px;
        font-size: 0.8125rem;
    }

    .tit h5 {
        font-size: 1.5rem;
    }

    .divide {
        flex-direction: column;
    }

    .detail-set {
        width: 100%;
        margin-bottom: 17px;
    }

    .detail-set input,
    .detail-set select {
        height: 43px;
        padding: 0 12px;
    }

    .detail-set select {
        padding-right: 42px;
    }

}

/* 상세·계정 폼 */
/* 사용자 상세 및 계정 설정 화면 공통 스타일 */

.tit {
    margin-bottom: 29px;
}

.tit p {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 5px;
    color: #566471;
    font-size: 0.875rem;
}

.tit p i {
    font-size: 0.75rem;
}

.tit h5 {
    color: #1C222A;
    font-size: 1.8125rem;
    font-weight: 500;
}

.detail-info {
    border: 1px solid var(--cms-border);
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(30, 41, 59, 0.12);
}

.detail-info > div:nth-child(1) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
    padding: 0 19px;
    border-bottom: 1px solid var(--cms-divider);
    box-sizing: border-box;
    background-color: var(--cms-primary-surface);
}

.detail-info > div:nth-child(1) > h5 {
    color: #302A35;
    font-size: 1.125rem;
    font-weight: 700;
}

.detail-info > div:nth-child(1) > button {
    height: 30px;
    padding: 0 12px;
    border: 1px solid #DBE0E5;
    border-radius: 6px;
    color: #566471;
    background-color: #fff;
    font-size: 0.75rem;
}

.detail-info > div:nth-child(1) > button:hover,
.detail-info > div:nth-child(1) > button:focus-visible {
    border-color: var(--cms-primary);
    color: var(--cms-primary);
}

.detail-info > div:nth-child(2) {
    padding: 19px;
}

.divide {
    display: flex;
    gap: 2%;
}

.detail-set {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-bottom: 24px;
}

.detail-set label,
.detail-label {
    margin-bottom: 8px;
    color: #828B93;
    font-size: 0.8125rem;
}

.detail-set input,
.detail-set select,
.detail-value {
    box-sizing: border-box;
    width: 100%;
    min-height: 47px;
    margin: 0;
    padding: 0 12px;
    border: 1px solid #E5E8EC;
    border-radius: 8px;
    color: #333;
    background-color: #F7F8F9;
    font-size: 0.8125rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.detail-value {
    display: flex;
    align-items: center;
}

.detail-set input {
    height: 47px;
    border-color: #B7C1CA;
    outline: none;
    background-color: #fff;
}

.detail-set select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: 47px;
    padding-right: 42px;
    border-color: #B7C1CA;
    outline: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25l5-5' fill='none' stroke='%23566471' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
}

.detail-set select:focus,
.detail-set input:focus {
    border-color: var(--cms-primary-focus);
}

.detail-set select:disabled {
    color: #566471;
    background-color: #F7F8F9;
    cursor: not-allowed;
}

.final-btn > div:first-child > dl {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 22px;
    margin: 0;
    color: #566471;
    font-size: 0.75rem;
}

.final-btn > div:first-child > dl > div {
    display: flex;
    align-items: center;
    gap: 6px;
}

.final-btn > div:first-child dt {
    color: #828B93;
    font-weight: 500;
    white-space: nowrap;
}

.final-btn > div:first-child dt::after {
    content: ":";
    margin-left: 2px;
}

.final-btn > div:first-child dd {
    margin: 0;
    color: #333;
    white-space: nowrap;
}

@media screen and (max-width: 1024px) {
    .detail-info > h5,
    .detail-info > div:nth-child(1) {
        height: 68px;
    }

    .tit {
        margin-bottom: 16px;
    }

    .tit p {
        margin-bottom: 3px;
        font-size: 0.8125rem;
    }

    .tit h5 {
        font-size: 1.5rem;
    }

    .divide {
        flex-direction: column;
    }

    .detail-set {
        width: 100%;
        margin-bottom: 17px;
    }

    .detail-value {
        min-height: 43px;
    }

    .detail-set input,
    .detail-set select {
        height: 43px;
    }

    .final-btn > div:first-child > dl {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 6px 16px;
    }
}

@media screen and (max-width: 480px) {
    .final-btn > div:first-child > dl {
        grid-template-columns: 1fr;
    }
}

.detail-set.full-width {
    width: 100%;
}

.detail-set textarea {
    width: 100%;
    min-height: 110px;
    padding: 15px;
    box-sizing: border-box;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 14px;
    resize: vertical;
}

.detail-set textarea:focus {
    border-color: #0064dd;
    outline: none;
}

/* 등록·수정·상세 화면 공통 UI */
.detail-info {
    margin-bottom: 18px;
    overflow: hidden;
    border: 1px solid #e8e4ea;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(48, 42, 53, .04);
}

.detail-info > h5,
.detail-info > div:first-child:not(.divide) {
    min-height: 68px;
    height: auto;
    padding: 14px 18px;
    border-bottom: 1px solid #eeeaf0;
    box-sizing: border-box;
    background: #fff;
}

.detail-info > h5,
.detail-info > div:first-child:not(.divide) h5 {
    color: #302a35;
    font-size: .98rem;
    font-weight: 700;
}

.detail-info > h5 + div,
.detail-info > div:nth-child(2) {
    padding: 18px;
}

.divide {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.divide + .divide {
    margin-top: 18px;
}

.divide > .detail-set:only-child,
.detail-set.full-width {
    grid-column: 1 / -1;
}

.detail-set {
    width: 100%;
    min-width: 0;
    margin: 0;
}

.detail-set label,
.detail-label {
    margin-bottom: 8px;
    color: #756e79;
    font-size: .7rem;
    font-weight: 600;
}

.detail-set input,
.detail-set select,
.detail-set textarea,
.detail-value {
    width: 100%;
    border: 1px solid #ded9e1;
    border-radius: 7px;
    box-sizing: border-box;
    color: #514a55;
    background-color: #fff;
    font-size: .74rem;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.detail-set input,
.detail-set select,
.detail-value {
    min-height: 42px;
    height: 42px;
    padding: 0 12px;
}

.detail-set textarea {
    min-height: 112px;
    padding: 12px;
    resize: vertical;
}

.detail-value,
.detail-set input[readonly],
.detail-set input:disabled,
.detail-set select:disabled {
    border-color: #e5e1e7;
    background-color: #f7f5f8;
}

.detail-set input:focus,
.detail-set select:focus,
.detail-set textarea:focus {
    border-color: var(--cms-primary-focus);
    box-shadow: 0 0 0 3px #eee7f2;
    outline: 0;
}

.final-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 68px;
    margin-top: 18px;
    padding: 12px 18px;
    border: 1px solid #e8e4ea;
    border-radius: 12px;
    box-sizing: border-box;
    background: #fff;
    box-shadow: 0 5px 18px rgba(48, 42, 53, .04);
}

.final-btn > div:first-child,
.final-btn > div:nth-child(2) {
    margin: 0;
}

.final-btn > div:first-child:empty {
    display: none;
}

.final-btn > div:nth-child(2) {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    margin-left: auto;
}

.cancel-btn,
.submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: 7px;
    box-sizing: border-box;
    font-size: .74rem;
    font-weight: 600;
}

.cancel-btn {
    border: 1px solid #ded9e2;
    color: #615968;
    background: #fff;
}

.cancel-btn:hover,
.cancel-btn:focus-visible {
    border-color: #bdaec8;
    color: var(--cms-primary);
    background: #faf8fb;
    outline: none;
}

.submit-btn {
    border: 1px solid var(--cms-primary);
    color: var(--cms-on-primary);
    background-color: var(--cms-primary);
}

.final-btn > div:first-child > dl {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 20px;
    margin: 0;
}

@media screen and (max-width: 1024px) {
    .divide {
        grid-template-columns: 1fr;
    }

    .detail-set,
    .divide > .detail-set {
        grid-column: 1;
    }

    .final-btn {
        align-items: stretch;
        flex-direction: column;
        gap: 0;
    }

    .final-btn > div:nth-child(2) {
        align-self: stretch;
        flex-direction: row;
        width: 100%;
    }

    .final-btn > div:nth-child(2) > .cancel-btn,
    .final-btn > div:nth-child(2) > .submit-btn {
        flex: 1 1 0;
        width: 50%;
        height: 40px;
    }

    .right-side .table-wrap:has(> .responsive-list-table) {
        overflow: hidden;
    }

    .right-side .table-wrap:has(> .responsive-list-table) > .table-toolbar {
        position: static;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table {
        display: block;
        width: 100%;
        min-width: 0;
        table-layout: auto;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table thead {
        display: none;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody {
        display: block;
        padding: 0 12px;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody tr {
        position: relative;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        min-width: 0;
        height: auto;
        margin: 12px 0;
        overflow: hidden;
        border: 1px solid var(--console-border);
        border-radius: 8px;
        background: var(--console-surface);
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody tr::after {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        height: 1px;
        background: var(--console-border);
        content: "";
        pointer-events: none;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody td {
        position: relative;
        z-index: auto;
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        justify-content: flex-start;
        width: auto;
        min-width: 0;
        min-height: 58px;
        padding: 10px 12px;
        overflow: hidden;
        border-right: 1px solid var(--console-border);
        border-bottom: 0;
        background: var(--console-surface);
        color: var(--console-muted);
        line-height: 1.25;
        text-align: left;
        text-overflow: ellipsis;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody td::after {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        height: 1px;
        background: var(--console-border);
        content: "";
        pointer-events: none;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody td::before {
        flex: none;
        margin-bottom: 6px;
        color: var(--console-faint);
        font-size: 10px;
        line-height: 1.1;
        content: attr(data-label);
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody td:nth-child(2n) {
        border-right: 0;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody tr > td:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        border-right: 0;
    }

    .right-side .table-wrap > .responsive-list-table.history-id-full tbody td:first-child {
        grid-column: 1 / -1;
        border-right: 0;
    }

    .right-side .table-wrap > .responsive-list-table.history-id-full tbody td:nth-child(2n) {
        border-right: 1px solid var(--console-border);
    }

    .right-side .table-wrap > .responsive-list-table.history-id-full tbody td:nth-child(odd) {
        border-right: 0;
    }

    .right-side .table-wrap > .responsive-list-table.history-id-full tbody tr > td:last-child:not(:first-child):nth-child(odd) {
        grid-column: auto;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody td .network-badge,
    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody td .use-badge {
        align-self: flex-start;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody tr:has(.no-celldata) {
        display: block;
        border: 0;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody tr:has(.no-celldata)::after {
        display: none;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody .no-celldata {
        display: block;
        min-height: 100px;
        border: 0;
        text-align: center;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody .empty-state {
        min-height: 96px;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table tbody .no-celldata::after {
        display: none;
    }

}

/* 목록 반응형: 항목 정렬과 작업 링크 */
@media screen and (max-width: 1024px) {
    .right-side .table-wrap:has(> .responsive-list-table) > .table-toolbar {
        gap: 10px;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table :is(.network-badge, .use-badge, .job-badge, .status-badge) {
        min-width: 0;
        height: 20px;
        padding: 0 6px;
        gap: 4px;
        font-size: 9px;
        font-weight: 400;
        line-height: 1;
        align-self: flex-start;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table :is(.network-badge, .job-badge)::before {
        width: 5px;
        height: 5px;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table :is(.del-btn, .settings-btn, .save-btn) {
        min-width: 0;
        height: auto;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        font-size: 11px;
        line-height: 1.5;
        text-decoration: underline;
        text-underline-offset: 3px;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table .del-btn { color: #ed6671; }
    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table :is(.settings-btn, .save-btn) { color: var(--g6-primary-text); }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table :is(.del-btn, .settings-btn, .save-btn):hover {
        background: transparent;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table :is(.del-btn, .settings-btn, .save-btn):focus-visible {
        outline: 1px solid currentColor;
        outline-offset: 4px;
    }

    :is(.right-side, .responsive-table-container) :is(.table-wrap, .deployment-table-wrap) > .responsive-list-table :is(.del-btn, .settings-btn, .save-btn) > i {
        display: none;
    }
}

@media screen and (min-width: 601px) and (max-width: 1024px) {
    .right-side .table-wrap:has(> .responsive-list-table) > .table-toolbar {
        flex-direction: row;
        align-items: center;
    }

    .right-side .table-wrap:has(> .responsive-list-table) > .table-toolbar .list-toolbar-controls {
        width: auto;
        min-width: 0;
        flex: 0 1 auto;
    }

    .right-side .table-wrap:has(> .responsive-list-table) > .table-toolbar .list-toolbar-search {
        min-width: 0;
        flex: 0 1 auto;
    }

    .right-side .table-wrap:has(> .responsive-list-table) > .table-toolbar .list-toolbar-search > div {
        min-width: 0;
    }

    .right-side .table-wrap:has(> .responsive-list-table) > .table-toolbar .list-toolbar-search input {
        width: 220px;
        min-width: 0;
        flex: 1 1 auto;
    }
}

@media screen and (max-width: 600px) {
    .console-list-page .table-toolbar .list-toolbar-controls {
        width: 100%;
        min-width: 0;
        margin-left: 0;
    }

    .console-list-page .table-toolbar .list-toolbar-search {
        width: 100%;
        min-width: 0;
        flex: 1 1 0;
    }

    .console-list-page .table-toolbar .list-toolbar-search > div {
        display: flex;
        width: 100%;
        min-width: 0;
        flex: 1 1 0;
    }

    .console-list-page .table-toolbar .list-toolbar-search input {
        width: 100%;
        min-width: 0;
        flex: 1 1 0;
        box-sizing: border-box;
    }

    .console-list-page .table-toolbar .list-toolbar-search > div button {
        flex: 0 0 34px;
    }
}
