#oper_adm_page .oper-adm__chart {
    width: 104px;
    height: 104px;
}

#oper_adm_page .oper-adm__filter-field {
    width: 120px;
}

#oper_adm_page .tbody-scroll {
    max-height: calc(100vh - 570px);
    min-height: 120px;
    overflow-y: auto;
}

#operAdmTotalTable {
    overflow: hidden;
}

#oper_adm_page .oper-summary {
    margin-bottom: 18px;
    padding: 16px 0;
    border-radius: 8px;
}

#oper_adm_page .oper-summary .app-adm-summary__body {
    width: 100%;
}

#oper_adm_page .oper-summary .app-adm-status-card {
    border-radius: 8px;
}

#oper_adm_page .oper-summary .app-adm-status-card--total {
    background: #ffffff;
}

#oper_adm_page .oper-summary .app-adm-status-card--total .app-adm-status-card__value strong {
    color: #111827;
}

#oper_adm_page .oper-summary .app-adm-status-card--normal {
    background: #f3f4f6;
}

#oper_adm_page .oper-summary .app-adm-status-card--normal .app-adm-status-card__value strong {
    color: #6b7280;
}

#oper_adm_page .oper-summary .app-adm-status-card--assign {
    background: #fef6e0;
}

#oper_adm_page .oper-summary .app-adm-status-card--assign .app-adm-status-card__value strong {
    color: #ca8a04;
}

#oper_adm_page .oper-summary .app-adm-status-card--good {
    background: #ffe7c4;
}

#oper_adm_page .oper-summary .app-adm-status-card--good .app-adm-status-card__value strong {
    color: #ff9f00;
}

#oper_adm_page .oper-summary .app-adm-status-card--warn {
    background: #eaf6ec;
}

#oper_adm_page .oper-summary .app-adm-status-card--warn .app-adm-status-card__value strong {
    color: #228738;
}

#oper_adm_page .oper-summary .app-adm-status-card--replace {
    background: #eaf6ff;
}

#oper_adm_page .oper-summary .app-adm-status-card--replace .app-adm-status-card__value strong {
    color: #047bb6;
}

#operAdmTotalTable {
    overflow: hidden;
}

#operAdmPagination [aria-disabled="true"] {
    pointer-events: none;
}

.swal2-container,
.swal2-container.swal2-backdrop-show,
.swal2-container.swal2-noanimation {
    z-index: 2147483000 !important;
}

#oper_adm_page .oper-adm__empty {
    text-align: center;
}

#oper_adm_page .tbody-scroll table tbody tr {
    cursor: pointer;
}

#oper_adm_page .tbody-scroll table tbody tr:hover td {
    background: #f8fbff;
}

#oper_adm_page .oper-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 56px;
    height: 26px;
    padding: 0 10px;
    border: 0;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    box-sizing: border-box;
}

#oper_adm_page .oper-status-badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 7px;
    background: var(--oper-status-dot, currentColor);
}

#oper_adm_page .oper-status--before {
    --oper-status-dot: #6b7280;
    background: #f3f4f6 !important;
    color: #6b7280 !important;
}

#oper_adm_page .oper-status--assigned {
    --oper-status-dot: #ca8a04;
    background: #fef3c7 !important;
    color: #854d0e !important;
}

#oper_adm_page .oper-status--ing {
    --oper-status-dot: #f97316;
    background: #ffe7c4 !important;
    color: #9a3412 !important;
}

#oper_adm_page .oper-status--done {
    --oper-status-dot: #f97316;
    background: #ffe7c4 !important;
    color: #9a3412 !important;
}

#oper_adm_page .oper-status--complete {
    --oper-status-dot: #228738;
    background: #dcf5e2 !important;
    color: #228738 !important;
}

#oper_adm_page .oper-status--oper-final {
    --oper-status-dot: #047bb6;
    background: #eaf6ff !important;
    color: #047bb6 !important;
}

#oper_adm_page .oper-status--error {
    --oper-status-dot: #b91c1c;
    background: #fee2e2 !important;
    color: #b91c1c !important;
}

#operAdmDetailModal.modal-backdrop,
#operAdmRegisterModal.modal-backdrop,
#operAdmEditModal.modal-backdrop {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(15, 23, 42, 0.45);
    z-index: 1450;
}

#operAdmRegisterModal.modal-backdrop,
#operAdmEditModal.modal-backdrop {
    padding: 20px;
    background: rgba(0, 0, 0, 0.45);
    z-index: 9999;
}

#operAdmDetailModal.modal-backdrop[data-open="true"],
#operAdmDetailModal.modal-backdrop.active,
#operAdmRegisterModal.modal-backdrop[data-open="true"],
#operAdmRegisterModal.modal-backdrop.active,
#operAdmEditModal.modal-backdrop[data-open="true"],
#operAdmEditModal.modal-backdrop.active {
    display: flex;
}

.oper-adm-detail {
    width: min(1140px, calc(100vw - 48px));
    height: min(820px, calc(100vh - 32px));
    height: min(820px, calc(100dvh - 32px));
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    position: relative;
    top: auto;
    left: auto;
    z-index: auto;
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    overflow: hidden;
    border-radius: 18px;
    background: #fff !important;
}

.oper-adm-detail .modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
    min-height: 56px;
    padding: 0 20px;
    border-bottom: 1px solid #d9e2ec;
    background: #047bb6;
}

.oper-adm-detail .modal__title {
    margin: 0;
    color: #fff;
    font-size: 19px;
    font-weight: 500;
}

.oper-adm-detail .modal__close {
    width: 36px;
    height: 36px;
    border: 0;
    background: transparent;
    color: transparent;
    cursor: pointer;
    position: relative;
}

.oper-adm-detail .modal__close::before,
.oper-adm-detail .modal__close::after {
    content: "";
    position: absolute;
    top: 17px;
    left: 8px;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
}

.oper-adm-detail .modal__close::before {
    transform: rotate(45deg);
}

.oper-adm-detail .modal__close::after {
    transform: rotate(-45deg);
}

.oper-adm-detail .modal__body {
    flex: 1;
    min-height: 0;
    overflow: auto;
    background: #f4f7fb;
    padding: 14px;
}

.oper-adm-detail .modal__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
    min-height: 58px;
    padding: 10px 20px;
    border-top: 1px solid #d9e2ec;
    background: #fff;
}

.oper-adm-detail .modal__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.oper-adm-detail__body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
    min-width: 0;
}

.oper-adm-detail__summary,
.oper-adm-detail__device-panel,
.oper-adm-detail__work-panel,
.oper-adm-detail__map-panel {
    min-width: 0;
    border: 1px solid #dfe7f0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04);
}

.oper-adm-detail__summary {
    padding: 14px 16px;
}

.oper-adm-detail__layout {
    display: grid;
    grid-template-columns: 230px minmax(360px, 1fr) 300px;
    gap: 12px;
    align-items: stretch;
}

.oper-adm-detail__device-panel,
.oper-adm-detail__work-panel,
.oper-adm-detail__map-panel {
    height: clamp(330px, calc(100vh - 350px), 506px);
    height: clamp(330px, calc(100dvh - 350px), 506px);
    padding: 12px;
    box-sizing: border-box;
}

.oper-adm-detail__device-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    overflow: hidden;
}

.oper-adm-detail__work-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.oper-adm-detail__map-panel {
    display: flex;
    flex-direction: column;
    padding-bottom: 10px;
    overflow: hidden;
}

.oper-adm-detail__section-head,
.oper-adm-detail__terminal-head,
.oper-adm-detail__evidence-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.oper-adm-detail__section-head {
    margin-bottom: 8px;
}

.oper-adm-detail__section-head--compact {
    min-height: 30px;
}

.oper-adm-detail__section-title,
.oper-adm-detail__terminal-head h3 {
    margin: 0;
    color: #1d1d1d;
    font-size: 16px;
    font-weight: 700;
}

.oper-adm-detail__eyebrow {
    margin: 4px 0 0;
    color: #697386;
    font-size: 13px;
    font-weight: 400;
}

.oper-adm-detail__status,
.oper-adm-detail__count {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: #eef5fb;
    color: #047bb6;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.oper-adm-detail__status.oper-status--before {
    --oper-status-dot: #6b7280;
    background: #f3f4f6;
    color: #6b7280;
}

.oper-adm-detail__status.oper-status--assigned {
    --oper-status-dot: #ca8a04;
    background: #fef3c7;
    color: #854d0e;
}

.oper-adm-detail__status.oper-status--ing {
    --oper-status-dot: #f97316;
    background: #ffe7c4;
    color: #9a3412;
}

.oper-adm-detail__status.oper-status--done {
    --oper-status-dot: #f97316;
    background: #ffe7c4;
    color: #9a3412;
}

.oper-adm-detail__status.oper-status--complete {
    --oper-status-dot: #228738;
    background: #dcf5e2;
    color: #228738;
}

.oper-adm-detail__status.oper-status--oper-final {
    --oper-status-dot: #047bb6;
    background: #eaf6ff;
    color: #047bb6;
}

.oper-adm-detail__status.oper-status--error {
    --oper-status-dot: #b91c1c;
    background: #fee2e2;
    color: #b91c1c;
}

.oper-adm-detail__status {
    justify-content: center;
    gap: 6px;
    min-width: 56px;
    min-height: 26px;
    height: 26px;
    padding: 0 10px;
    border: 0;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    box-sizing: border-box;
}

.oper-adm-detail__status::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 7px;
    background: var(--oper-status-dot, currentColor);
}

.oper-adm-detail__summary-grid,
.oper-adm-detail__checklist {
    display: grid;
    gap: 10px;
    margin: 0;
}

.oper-adm-detail__summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.oper-adm-detail__summary-grid > div,
.oper-adm-detail__checklist > div {
    min-width: 0;
    border: 1px solid #e4ebf3;
    border-radius: 6px;
    background: #fbfdff;
}

.oper-adm-detail__summary-grid > div {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    align-items: center;
}

.oper-adm-detail__summary-grid dt,
.oper-adm-detail__checklist dt {
    display: flex;
    align-items: center;
    min-height: 42px;
    margin: 0;
    padding: 0 14px;
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}

.oper-adm-detail__summary-grid dt {
    color: #64748b;
    font-weight: 700;
}

.oper-adm-detail__summary-grid dd,
.oper-adm-detail__checklist dd {
    min-width: 0;
    min-height: 42px;
    margin: 0;
    padding: 11px 14px;
    color: #111827;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.oper-adm-detail__summary-grid dd {
    display: flex;
    align-items: center;
    min-height: 42px;
    margin: 0;
    padding: 10px 14px;
    color: #334155;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
}

.oper-adm-detail__summary-grid dd[data-oper-adm-detail="regist_dt"],
.oper-adm-detail__summary-grid dd[data-oper-assign-detail="regist_dt"] {
    color: #334155;
    font-weight: 700;
}

.oper-adm-detail__check-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 58px;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.oper-adm-detail__check-badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 7px;
}

.oper-adm-detail__check-badge--ok {
    background: #dcf5e2;
    color: #228738;
}

.oper-adm-detail__check-badge--ok::before {
    background: #228738;
}

.oper-adm-detail__check-badge--bad {
    background: #fee2e2;
    color: #b91c1c;
}

.oper-adm-detail__check-badge--bad::before {
    background: #b91c1c;
}

.oper-adm-detail__check-badge--empty {
    background: #f1f5f9;
    color: #64748b;
}

.oper-adm-detail__check-badge--empty::before {
    background: #94a3b8;
}

.oper-adm-detail__device-list,
.oper-adm-detail__timeline,
.oper-adm-detail__file-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.oper-adm-detail__device-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.oper-adm-detail__device-list::after {
    content: "";
    flex: 0 0 2px;
}

.oper-adm-detail__body-scroll {
    flex: 1 1 auto;
    height: calc(min(820px, calc(100vh - 32px)) - 116px);
    height: calc(min(820px, calc(100dvh - 32px)) - 116px);
    max-height: calc(100vh - 148px);
    max-height: calc(100dvh - 148px);
    min-height: 0;
    padding: 14px !important;
    overflow: hidden !important;
}

.oper-adm-detail__device-scroll,
.oper-adm-detail__panel-scroll {
    min-width: 0;
    min-height: 0;
}

.oper-adm-detail__device-scroll {
    height: 100%;
    max-height: 100%;
    min-height: 0;
    padding-right: 6px;
}

.oper-adm-detail__device-scroll .simplebar-wrapper,
.oper-adm-detail__device-scroll .simplebar-mask,
.oper-adm-detail__device-scroll .simplebar-offset,
.oper-adm-detail__device-scroll .simplebar-content-wrapper,
.oper-adm-detail__panel-scroll .simplebar-wrapper,
.oper-adm-detail__panel-scroll .simplebar-mask,
.oper-adm-detail__panel-scroll .simplebar-offset {
    height: 100%;
    max-height: 100%;
    min-height: 0;
}

.oper-adm-detail__panel-scroll {
    height: 100%;
}

.oper-adm-detail__device-scroll .simplebar-content {
    box-sizing: border-box;
    padding: 2px 10px 5px 0;
}

.oper-adm-detail__device-scroll .simplebar-content-wrapper,
.oper-adm-detail__panel-scroll .simplebar-content-wrapper {
    height: 100%;
    max-height: 100%;
}

.oper-adm-detail__device-btn {
    width: 100%;
    min-height: 52px;
    padding: 7px 9px;
    border: 1px solid #dbe5f1;
    border-radius: 8px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.oper-adm-detail__device-btn:hover,
.oper-adm-detail__device-btn.is-active {
    border-color: #047bb6;
    background: #f0f8ff;
}

.oper-adm-detail__device-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.oper-adm-detail__device-name {
    display: block;
    overflow: hidden;
    flex: 1;
    min-width: 0;
    color: #1f2937;
    font-size: 13px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oper-adm-detail__device-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    flex: 0 0 auto;
    min-width: 48px;
    min-height: 22px;
    height: 22px;
    padding: 0 8px;
    border: 0;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    box-sizing: border-box;
}

.oper-adm-detail__device-status::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: 0 0 6px;
    background: var(--oper-status-dot, currentColor);
}

.oper-adm-detail__device-status.oper-status--before {
    --oper-status-dot: #6b7280;
    background: #f3f4f6;
    color: #6b7280;
}

.oper-adm-detail__device-status.oper-status--assigned {
    --oper-status-dot: #ca8a04;
    background: #fef3c7;
    color: #854d0e;
}

.oper-adm-detail__device-status.oper-status--ing {
    --oper-status-dot: #f97316;
    background: #ffe7c4;
    color: #9a3412;
}

.oper-adm-detail__device-status.oper-status--done {
    --oper-status-dot: #f97316;
    background: #ffe7c4;
    color: #9a3412;
}

.oper-adm-detail__device-status.oper-status--complete {
    --oper-status-dot: #228738;
    background: #dcf5e2;
    color: #228738;
}

.oper-adm-detail__device-status.oper-status--error {
    --oper-status-dot: #b91c1c;
    background: #fee2e2;
    color: #b91c1c;
}

.oper-adm-detail__device-station {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: #64748b;
    font-size: 11px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oper-adm-detail__terminal-head {
    min-height: 36px;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e5edf5;
    flex: 0 0 auto;
}

.oper-adm-detail__terminal-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 5px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.oper-adm-detail__terminal-meta dt,
.oper-adm-detail__terminal-meta dd {
    margin: 0;
}

.oper-adm-detail__terminal-meta dt {
    color: #94a3b8;
}

.oper-adm-detail__terminal-meta dd {
    color: #475569;
}

.oper-adm-detail__progress {
    margin: 0 0 14px;
    padding: 12px;
    border: 1px solid #e4ebf3;
    border-radius: 8px;
    background: #fbfdff;
}

.oper-adm-detail__progress.oper-adm-detail__progress--empty {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.oper-adm-detail__checklist > div {
    display: block;
}

.oper-adm-detail__tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 10px;
    border-bottom: 1px solid #dbe5f1;
    flex: 0 0 auto;
}

.oper-adm-detail__tab {
    min-width: 84px;
    height: 38px;
    padding: 0 12px;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.oper-adm-detail__tab.is-active {
    border-bottom-color: #047bb6;
    color: #047bb6;
}

.oper-adm-detail__tab-panel {
    display: none;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.oper-adm-detail__tab-panel.is-active {
    display: block;
}

.oper-adm-detail__checklist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.oper-adm-detail__checklist > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 46px;
    padding: 0 12px;
}

.oper-adm-detail__checklist dt,
.oper-adm-detail__checklist dd {
    min-height: auto;
    padding: 0;
}

.oper-adm-detail__checklist dt {
    color: #334155;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.oper-adm-detail__checklist dd {
    display: flex;
    justify-content: flex-end;
    flex: 0 0 auto;
}

.oper-adm-detail__work-text {
    min-height: 180px;
    margin: 0;
    padding: 16px;
    border: 1px solid #e4ebf3;
    border-radius: 8px;
    background: #fbfdff;
    color: #1f2937;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.7;
    white-space: pre-wrap;
}

.oper-adm-detail__result-section + .oper-adm-detail__result-section {
    margin-top: 16px;
}

.oper-adm-detail__result-section strong {
    display: block;
    margin-bottom: 6px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 800;
}

.oper-adm-detail__result-section p {
    margin: 0;
    color: #1f2937;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.7;
    white-space: pre-wrap;
}

.oper-adm-detail__result-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid #e4ebf3;
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}

.oper-adm-detail__timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-left: 10px;
    overflow: visible;
}

.oper-adm-detail__timeline-item {
    position: relative;
    padding: 0 0 18px 28px;
}

.oper-adm-detail__timeline-item::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 4px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #cbd5e1;
}

.oper-adm-detail__timeline-item::after {
    content: "";
    position: absolute;
    top: 18px;
    bottom: 0;
    left: 8px;
    width: 1px;
    background: #dbe5f1;
}

.oper-adm-detail__timeline-item.is-active::before {
    background: #047bb6;
}

.oper-adm-detail__timeline-item.is-line-active::after {
    background: #047bb6;
}

.oper-adm-detail__timeline-item:last-child::after {
    display: none;
}

.oper-adm-detail__timeline-status {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    color: #111827;
    font-size: 14px;
    font-weight: 800;
}

.oper-adm-detail__timeline-item:not(.is-active) .oper-adm-detail__timeline-status,
.oper-adm-detail__timeline-item:not(.is-active) .oper-adm-detail__timeline-meta {
    color: #94a3b8;
}

/* 재제출(수정)로 추가된 완료/실패 이력 표시 배지 */
.oper-adm-detail__timeline-edit {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    border-radius: 999px;
    background: #eef1f5;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.6;
}

.oper-adm-detail__timeline-meta,
.oper-adm-detail__timeline-desc {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.oper-adm-detail__timeline-meta--worker {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eaf6ff;
    font-size: 12px;
    font-weight: 800;
}

.oper-adm-detail__worker-label {
    color: #94a3b8;
}

.oper-adm-detail__timeline-meta--worker strong {
    color: #047bb6;
    font-weight: 800;
}

.oper-adm-detail__timeline-meta--worker strong.is-unassigned {
    color: #94a3b8;
}

.oper-adm-detail__timeline-worker-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eaf6ff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.oper-adm-detail__timeline-worker-badge strong {
    color: #047bb6;
    font-weight: 800;
}

.oper-adm-detail__timeline-worker-badge strong.is-unassigned {
    color: #94a3b8;
}

.oper-adm-detail__evidence-head {
    justify-content: flex-start;
    gap: 8px;
    margin-bottom: 12px;
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

.oper-adm-detail__evidence-head span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 6px;
    background: #fff;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
    box-shadow: inset 0 0 0 1px #e5edf5;
}

.oper-adm-detail__evidence-head strong {
    color: #047bb6;
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
}

.oper-adm-detail__file-list {
    display: grid;
    gap: 10px;
    margin: 0 0 14px;
    padding: 10px;
    border: 1px solid #e4ebf3;
    border-radius: 8px;
    background: #fbfdff;
}

.oper-adm-detail__file-list.oper-adm-detail__file-list--empty {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.oper-adm-detail__file-list--empty .oper-adm-detail__empty {
    list-style: none;
}

.oper-adm-detail__photo-list,
#operAdmFileList .oper-adm-detail__photo-list,
#operAssignFileList .oper-adm-detail__photo-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* 사진 개수별 그리드: 3~5장 한 줄, 6~10장 두 줄(첫 줄 ceil, 둘째 줄 floor)
   3→3 / 4→4 / 5→5 / 6→3·3 / 7→4·3 / 8→4·4 / 9→5·4 / 10→5·5 */
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="1"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="1"] {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
}
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="2"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="3"],
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="6"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="3"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="6"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="4"],
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="7"],
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="8"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="4"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="7"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="8"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="5"],
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="9"],
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="10"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="5"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="9"],
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="10"] {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
/* 열이 많아질수록 카드 높이 축소(비율 유지) */
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="4"] .oper-adm-detail__photo-card,
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="7"] .oper-adm-detail__photo-card,
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="8"] .oper-adm-detail__photo-card,
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="4"] .oper-adm-detail__photo-card,
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="7"] .oper-adm-detail__photo-card,
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="8"] .oper-adm-detail__photo-card {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
}
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="5"] .oper-adm-detail__photo-card,
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="9"] .oper-adm-detail__photo-card,
#operAdmFileList .oper-adm-detail__photo-list[data-photo-count="10"] .oper-adm-detail__photo-card,
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="5"] .oper-adm-detail__photo-card,
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="9"] .oper-adm-detail__photo-card,
#operAssignFileList .oper-adm-detail__photo-list[data-photo-count="10"] .oper-adm-detail__photo-card {
    height: 130px !important;
    min-height: 130px !important;
    max-height: 130px !important;
}

.oper-adm-detail__photo-card,
#operAdmFileList .oper-adm-detail__photo-card,
#operAdmFileList .mdm-image-placeholder.oper-adm-detail__photo-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    border: 1px solid #dbe5f1 !important;
    background: #f8fafc !important;
    cursor: pointer;
}

.oper-adm-detail__photo-card img,
#operAdmFileList .oper-adm-detail__photo-card img,
#operAdmFileList .mdm-image-placeholder.oper-adm-detail__photo-card img {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    border-radius: 8px !important;
}

#operAdmFileList .oper-adm-detail__photo-card img.oper-adm-detail__photo-img--fallback,
#operAdmFileList .mdm-image-placeholder.oper-adm-detail__photo-card img.oper-adm-detail__photo-img--fallback {
    width: 50% !important;
    min-width: 0 !important;
    max-width: 50% !important;
    height: 50% !important;
    min-height: 0 !important;
    max-height: 50% !important;
    object-fit: contain !important;
    border-radius: 0 !important;
}

.oper-adm-detail__photo-fallback-text,
#operAdmFileList .oper-adm-detail__photo-fallback-text {
    display: none;
    margin-top: 8px;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
}

.oper-adm-detail__photo-card--fallback .oper-adm-detail__photo-fallback-text,
#operAdmFileList .oper-adm-detail__photo-card--fallback .oper-adm-detail__photo-fallback-text {
    display: block;
}

.oper-adm-image-viewer {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 32px;
    background: rgba(240, 247, 255, 0.88);
    backdrop-filter: blur(4px);
    box-sizing: border-box;
}

.oper-adm-image-viewer.is-active {
    display: flex !important;
}

.oper-adm-image-viewer__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: transparent;
    cursor: default;
}

.oper-adm-image-modal {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(1080px, 92vw) !important;
    height: min(760px, 84vh) !important;
    max-width: none !important;
    max-height: none !important;
    padding: 56px 72px !important;
    overflow: visible !important;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px !important;
    background: #ffffff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.34);
    box-sizing: border-box;
}

.oper-adm-image-modal .modal__header {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 10001;
    display: block;
    min-height: 0;
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
}

.oper-adm-image-viewer__name {
    display: none;
}

.oper-adm-image-modal .modal__close {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: transparent;
    font-size: 0;
    line-height: 0;
    cursor: pointer;
}

.oper-adm-image-modal .modal__close::before,
.oper-adm-image-modal .modal__close::after {
    content: "";
    position: absolute;
    top: 21px;
    left: 10px;
    width: 24px;
    height: 3px;
    border-radius: 999px;
    background: #1c8cf4;
}

.oper-adm-image-modal .modal__close::before {
    transform: rotate(45deg);
}

.oper-adm-image-modal .modal__close::after {
    transform: rotate(-45deg);
}

.oper-adm-image-modal .modal__close:hover {
    background: transparent;
}

.oper-adm-image-modal .modal__close:hover::before,
.oper-adm-image-modal .modal__close:hover::after {
    background: #03699c;
}

.oper-adm-image-modal__body {
    position: static;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 0 !important;
    background: transparent;
    box-sizing: border-box;
}

.oper-adm-image-viewer__stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

.oper-adm-image-viewer__image {
    display: block;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    object-fit: contain;
    border-radius: 12px;
    background: #f8fafc;
}

.oper-adm-image-viewer__nav {
    position: absolute;
    top: 50%;
    z-index: 10001;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #1c8cf4;
    font-size: 58px;
    font-weight: 800;
    line-height: 1;
    box-shadow: none;
    cursor: pointer;
    transform: translateY(-50%) scaleY(1.35);
}

.oper-adm-image-viewer__nav--prev {
    left: 16px;
}

.oper-adm-image-viewer__nav--next {
    right: 16px;
}

.oper-adm-image-viewer__nav:hover {
    background: transparent;
    color: #03699c;
}

@media (max-width: 768px) {
    .oper-adm-image-viewer {
        padding: 16px;
    }

    .oper-adm-image-modal {
        width: 100% !important;
        height: 82vh !important;
        padding: 56px 44px !important;
    }

    .oper-adm-image-modal .modal__close {
        top: -4px;
        right: -4px;
    }

    .oper-adm-image-viewer__nav {
        width: 54px;
        height: 54px;
        font-size: 46px;
    }

    .oper-adm-image-viewer__nav--prev {
        left: 2px;
    }

    .oper-adm-image-viewer__nav--next {
        right: 2px;
    }
}

.oper-adm-detail__map-wrap {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    border: 1px solid #dbe5f1;
    border-radius: 8px;
    background: #f8fafc;
    overflow: hidden;
}

.oper-adm-detail__map {
    width: 100%;
    height: 100%;
    min-height: 0;
}

.oper-adm-detail__map .ol-viewport {
    border-radius: 8px;
}

.oper-adm-detail__map-marker {
    width: 18px;
    height: 18px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #047bb6;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.35);
    pointer-events: none;
}

.oper-adm-detail__map-empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: #f8fafc;
    color: #64748b;
    font-size: 15px;
    font-weight: 700;
    pointer-events: none;
}

.oper-adm-detail__map-empty.is-hidden {
    display: none;
}

.oper-adm-detail__coord {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
    color: #475569;
    font-size: 13px;
    font-weight: 600;
}

.oper-adm-detail__coord strong {
    margin-left: 4px;
    color: #1e293b;
}

.oper-adm-detail__empty {
    display: grid;
    min-height: 120px;
    place-items: center;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    color: #64748b;
    font-size: 14px;
    font-weight: 600;
}

@media (max-width: 1200px) {
    .oper-adm-detail__layout {
        grid-template-columns: 240px minmax(0, 1fr);
    }

    .oper-adm-detail__map-panel {
        grid-column: 1 / -1;
    }
}

@media (max-width: 900px) {
    .oper-adm-detail {
        width: calc(100vw - 24px);
    }

    .oper-adm-detail__layout,
    .oper-adm-detail__summary-grid,
    .oper-adm-detail__summary-grid > div,
    .oper-adm-detail__checklist {
        grid-template-columns: 1fr;
    }

    .oper-adm-detail__map-panel {
        grid-column: auto;
    }
}

.oper-adm-register {
    width: min(900px, calc(100vw - 40px));
    height: min(640px, calc(100vh - 40px));
    height: min(640px, calc(100dvh - 40px));
    max-height: 90vh;
    max-height: min(90vh, calc(100dvh - 40px));
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: none;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.oper-adm-register .modal__header,
.oper-adm-register .modal__body,
.oper-adm-register .modal__footer {
    width: 100%;
    box-sizing: border-box;
}

.oper-adm-register .modal__header,
.oper-adm-register .modal__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
}

.oper-adm-register .modal__header {
    min-height: 56px;
    height: 56px;
    margin: 0;
    padding: 0 20px;
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    background: #047bb6;
}

.oper-adm-register .modal__title {
    margin: 0;
    color: #fff;
    font-size: 19px;
    font-weight: 500;
    line-height: 1;
}

.oper-adm-register .modal__close {
    position: relative;
    width: 28px;
    height: 28px;
    overflow: hidden;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: transparent;
}

.oper-adm-register .modal__close::before,
.oper-adm-register .modal__close::after {
    content: "";
    position: absolute;
    top: 13px;
    left: 6px;
    width: 16px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
}

.oper-adm-register .modal__close:hover {
    background: rgba(255, 255, 255, 0.14);
}

.oper-adm-register .modal__close::before {
    transform: rotate(45deg);
}

.oper-adm-register .modal__close::after {
    transform: rotate(-45deg);
}

.oper-adm-register .modal__body {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    background: #fff;
}

.oper-adm-register__head {
    display: none !important;
    width: 100%;
    margin: 0 0 14px;
    padding: 12px 12px 8px;
    border: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
    border-radius: 6px 6px 0 0;
    background: #fff;
    box-sizing: border-box;
}

.oper-adm-register__panel,
.oper-adm-register__panel.is-active {
    flex-basis: auto;
    height: 100%;
    min-height: 0;
}

.oper-adm-register .modal__footer {
    flex: 0 0 auto;
    justify-content: space-between;
    gap: 10px;
    min-height: 64px;
    padding: 12px 20px;
    border-top: 1px solid #e5e7eb;
    background: #fafbfc;
}

.oper-adm-register .modal__actions {
    display: flex;
    gap: 8px;
}

.oper-adm-register .modal__footer .btn {
    min-width: 100px;
    height: 40px;
}

#operAdmRegPrevBtn,
#operAdmRegSubmitBtn {
    display: none;
}

.oper-adm-register__step-indicator {
    width: 100%;
    flex: 0 0 96px;
    height: 96px;
    margin: 0;
    padding: 20px 20px 16px;
    box-sizing: border-box;
}

.oper-adm-register__step-indicator .content_set_reg-step {
    width: 96px;
    flex: 0 0 96px;
}

.oper-adm-register__step-indicator .content_set_reg-step__label {
    max-width: 96px;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
}

.oper-adm-register__step-indicator .content_set_reg-step-line {
    min-width: 56px;
    margin-left: 12px;
    margin-right: 12px;
}

.oper-adm-register__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
}

.oper-adm-register__step {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #d9e2ec;
    border-radius: 8px;
    background: #fff;
    color: #697386;
}

.oper-adm-register__step span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    background: #e8eef6;
    color: #52606d;
    font-size: 13px;
    font-weight: 700;
}

.oper-adm-register__step strong {
    font-size: 14px;
    font-weight: 700;
}

.oper-adm-register__step.is-active {
    border-color: #047bb6;
    color: #0f172a;
}

.oper-adm-register__step.is-active span,
.oper-adm-register__step.is-done span {
    background: #047bb6;
    color: #fff;
}

.oper-adm-register__panel {
    width: 100%;
    display: none;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    padding: 10px;
    background: #f5f6f8;
    box-sizing: border-box;
}

.oper-adm-register__panel.is-active {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.oper-adm-register__head h3 {
    margin: 0;
    color: #047bb6;
    font-size: 15px;
    font-weight: 600;
}

.oper-adm-register__head p {
    margin: 4px 0 0;
    color: #697386;
    font-size: 13px;
}

.oper-adm-register__panel > .oper-adm-register__head,
.oper-adm-register__panel > .oper-adm-register__type-grid,
.oper-adm-register__panel > .oper-adm-register__group-wrap,
.oper-adm-register__panel > .oper-adm-register__target-layout,
.oper-adm-register__panel > .oper-adm-register__issue-content {
    min-height: 0;
}

.oper-adm-register__panel > .oper-adm-register__head {
    flex: 0 0 auto;
}

.oper-adm-register__panel[data-oper-adm-reg-panel="1"].is-active,
.oper-adm-register__panel[data-oper-adm-edt-panel="1"].is-active,
.oper-adm-register__panel[data-oper-adm-reg-panel="3"].is-active,
.oper-adm-register__panel[data-oper-adm-edt-panel="3"].is-active {
    justify-content: flex-start;
}

.oper-adm-register__panel[data-oper-adm-reg-panel="3"].is-active,
.oper-adm-register__panel[data-oper-adm-edt-panel="3"].is-active {
    overflow: hidden;
}

.oper-adm-register__panel[data-oper-adm-reg-panel="2"].is-active,
.oper-adm-register__panel[data-oper-adm-edt-panel="2"].is-active {
    overflow: hidden !important;
}

.oper-adm-register__panel[data-oper-adm-reg-panel="1"] .oper-adm-register__type-grid,
.oper-adm-register__panel[data-oper-adm-edt-panel="1"] .oper-adm-register__type-grid,
.oper-adm-register__panel[data-oper-adm-reg-panel="3"] .oper-adm-register__group-wrap,
.oper-adm-register__panel[data-oper-adm-edt-panel="3"] .oper-adm-register__group-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.oper-adm-register__type-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-content: start;
    gap: 10px;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-top: 0;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
}

.oper-adm-register__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 12px;
    width: 100%;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    box-sizing: border-box;
}

.oper-adm-register__panel[data-oper-adm-reg-panel="1"] .oper-adm-register__form,
.oper-adm-register__panel[data-oper-adm-edt-panel="1"] .oper-adm-register__form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

.oper-adm-register__form-main,
.oper-adm-register__field--group {
    width: 100%;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: 16px 18px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
}

.oper-adm-register__form-main {
    height: 100%;
    gap: 6px;
}

.oper-adm-register__field--type {
    flex: 0 1 auto;
    min-height: 0;
    margin-top: 6px;
}

.oper-adm-register__field--group {
    height: 100%;
}

.oper-adm-register__field {
    display: grid;
    align-content: start;
    align-items: start;
    gap: 4px;
    min-width: 0;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.oper-adm-register__field--type,
.oper-adm-register__field--group {
    display: flex;
    flex-direction: column;
}

.oper-adm-register__field > input {
    width: 100%;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    box-sizing: border-box;
}

.oper-adm-register__form-main > .oper-adm-register__field:not(.oper-adm-register__field--type) {
    flex: 0 0 auto;
}

.oper-adm-register__form-main .oper-adm-register__section-title,
.oper-adm-register__field--group .oper-adm-register__section-title {
    margin-bottom: 4px;
}

.oper-adm-register__field--group .oper-adm-register__search {
    margin-bottom: 4px;
}

.oper-adm-register__field .oper-adm-register__group-list {
    overflow: visible;
}

.oper-adm-register__field .oper-adm-register__type-grid {
    padding: 0;
    border: 0;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
}

.oper-adm-register__field .oper-adm-register__type {
    aspect-ratio: auto;
    min-height: 48px;
}

.oper-adm-register__type,
.oper-adm-register__target,
.oper-adm-register__group {
    width: 100%;
    border: 1px solid #dbe5ef;
    border-radius: 8px;
    background: #fff;
    color: #172033;
    text-align: left;
    cursor: pointer;
}

.oper-adm-register__type {
    width: 100%;
    min-height: 48px;
    padding: 8px 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
}

.oper-adm-register__type:hover,
.oper-adm-register__type.is-active,
.oper-adm-register__target:hover,
.oper-adm-register__target.is-active,
.oper-adm-register__group:hover,
.oper-adm-register__group.is-active,
.oper-adm-register__group.is-selected,
.oper-adm-register__group[aria-pressed="true"] {
    border-color: #047bb6;
    background: #eaf6ff;
    box-shadow: inset 0 0 0 1px #047bb6;
}

.oper-adm-register__type:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.oper-adm-register__group.is-active strong,
.oper-adm-register__group.is-selected strong,
.oper-adm-register__group[aria-pressed="true"] strong {
    color: #047bb6;
}

.oper-adm-register__target-layout {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 8px;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
}

#operAdmRegisterModal.is-install-type .oper-adm-register__target-layout,
#operAdmEditModal.is-install-type .oper-adm-register__target-layout {
    grid-template-columns: minmax(0, 1fr);
}

#operAdmRegisterModal.is-install-type .oper-adm-register__map-box,
#operAdmEditModal.is-install-type .oper-adm-register__map-box {
    display: none;
}

.oper-adm-register__target-box,
.oper-adm-register__map-box,
.oper-adm-register__issue-device-box,
.oper-adm-register__issue-type-box,
.oper-adm-register__group-wrap {
    width: 100%;
    min-width: 0;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
}

.oper-adm-register__target-box,
.oper-adm-register__issue-device-box,
.oper-adm-register__issue-type-box,
.oper-adm-register__group-wrap {
    padding: 16px 18px;
}

.oper-adm-register__target-box,
.oper-adm-register__issue-device-box,
.oper-adm-register__issue-type-box {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.oper-adm-register__target-box {
    height: 100%;
}

.oper-adm-register__search {
    display: flex;
    align-items: center;
    gap: 0;
    width: 100%;
    min-height: 44px;
    margin-bottom: 6px;
    overflow: hidden;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: #fff;
}

.oper-adm-register__search input {
    flex: 1;
    min-width: 0;
    height: 44px;
    padding: 0 12px;
    border: none;
    outline: none;
    font-size: 14px;
}

.oper-adm-register__search .search-btn {
    width: 44px;
    height: 44px;
    border: none;
    border-left: 1px solid #d1d5db;
    background: none;
}

.oper-adm-register__target-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
    padding: 6px 2px;
    border-bottom: 1px solid #e5e7eb;
}

.oper-adm-register__selected-count {
    margin: 0;
    padding: 0;
    border-bottom: 0;
    color: #047bb6;
    font-size: 12px;
    font-weight: 500;
    text-align: right;
}

.oper-adm-register__select-all {
    height: 28px;
    padding: 0 12px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #f8fafc;
    color: #475569;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s;
}

.oper-adm-register__select-all:hover {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #047bb6;
}

.oper-adm-register__select-all.is-active {
    background: #eff6ff;
    border-color: #047bb6;
    color: #047bb6;
}

.oper-adm-register__target-list,
.oper-adm-register__group-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.oper-adm-register__target-list {
    height: auto;
}

.oper-adm-register__target {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 0;
    padding: 10px 12px;
    border-radius: 6px;
}

.oper-adm-register__target input {
    flex: 0 0 auto;
}

.oper-adm-register__target-main {
    min-width: 0;
}

.oper-adm-register__target-main strong,
.oper-adm-register__target-main em,
.oper-adm-register__group strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oper-adm-register__target-main strong,
.oper-adm-register__group strong {
    font-size: 13px;
    font-weight: 700;
}

.oper-adm-register__target-main em {
    margin-top: 3px;
    color: #697386;
    font-size: 11px;
    font-style: normal;
}

.oper-adm-register__map-box {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    padding: 16px 18px;
    box-sizing: border-box;
}

.oper-adm-register__map-host {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.oper-adm-register__map {
    width: 100%;
    height: 100%;
    min-height: 280px;
}

.oper-adm-register__map-empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(244, 247, 251, 0.86);
    color: #64748b;
    font-size: 14px;
}

.oper-adm-register__map-empty.is-hidden {
    display: none;
}

.oper-adm-register__group-list {
    max-height: none;
    height: auto;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: #fff;
}

.oper-adm-register__group {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 12px;
}

.oper-adm-register__group > span {
    display: none !important;
}

.oper-adm-register__station-assign {
    display: grid;
    grid-template-columns: minmax(230px, 0.85fr) minmax(240px, 0.85fr) minmax(240px, 0.85fr);
    gap: 10px;
    width: 100%;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-sizing: border-box;
}

.oper-adm-register__station-section {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: 16px 18px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
}

.oper-adm-register__section-title {
    flex: 0 0 auto;
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 8px;
    padding-bottom: 8px;
    font-size: 15px;
    font-weight: 600;
    color: #1d1d1d;
    border-bottom: 1px solid #e5e7eb;
}

.oper-adm-register__station-content {
    display: none;
}

#operAdmRegisterModal.is-install-type .oper-adm-register__station-content,
#operAdmEditModal.is-install-type .oper-adm-register__station-content {
    display: grid;
}

.oper-adm-register__issue-content {
    display: flex;
    width: 100%;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

#operAdmRegisterModal.is-install-type .oper-adm-register__issue-content,
#operAdmEditModal.is-install-type .oper-adm-register__issue-content {
    display: none;
}

.oper-adm-register__issue-assign {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(360px, 1.1fr);
    gap: 10px;
    width: 100%;
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    box-sizing: border-box;
}

.oper-adm-register__issue-device-box,
.oper-adm-register__issue-type-box {
    overflow: hidden;
    height: 100%;
    min-height: 0;
}

.oper-adm-register__issue-picker {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

.oper-adm-register__issue-notice {
    display: none;
    margin: -3px 0 2px;
    padding: 0 2px;
    color: #8a97a8;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
}

.oper-adm-register__assign-devices,
.oper-adm-register__station-picker,
.oper-adm-register__issue-picker,
.oper-adm-register__station-map-box {
    min-width: 0;
    min-height: 0;
}

.oper-adm-register__assign-devices {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.oper-adm-register__assign-device,
.oper-adm-register__station-choice,
.oper-adm-register__issue-choice {
    width: 100%;
    min-height: 0;
    padding: 10px 12px;
    border: 1px solid #dbe5ef;
    border-radius: 6px;
    background: #fff;
    color: #172033;
    text-align: left;
    cursor: pointer;
}

.oper-adm-register__assign-device strong,
.oper-adm-register__assign-device span,
.oper-adm-register__station-choice strong,
.oper-adm-register__station-choice span,
.oper-adm-register__issue-choice strong,
.oper-adm-register__issue-choice span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oper-adm-register__assign-device strong,
.oper-adm-register__station-choice strong,
.oper-adm-register__issue-choice strong {
    color: #1f2937;
    font-size: 13px;
    font-weight: 800;
}

.oper-adm-register__assign-device.is-assigned {
    border-color: transparent;
    background: #f1f5f9;
}

.oper-adm-register__assign-device.is-missing {
    border-color: transparent;
    background: #fef2f2;
}

.oper-adm-register__assign-device span,
.oper-adm-register__station-choice span,
.oper-adm-register__issue-choice span {
    margin-top: 4px;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
}

.oper-adm-register__issue-description {
    display: block;
    margin-top: 5px;
    color: #6b7280;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    white-space: normal;
}

.oper-adm-register__assign-device.is-active,
.oper-adm-register__station-choice.is-active,
.oper-adm-register__issue-choice.is-active {
    border-color: #047bb6;
    background: #eaf6ff;
    box-shadow: inset 0 0 0 1px #047bb6;
}

.oper-adm-register__issue-choice.is-locked {
    cursor: default;
}

.oper-adm-register__station-more {
    min-height: 34px;
    padding: 6px 10px;
    border-style: dashed;
    border-color: #b8cadb;
    background: #f4f8fb;
    text-align: center;
}

.oper-adm-register__station-more:hover {
    border-color: #047bb6;
    background: #eef7fc;
}

.oper-adm-register__station-more strong {
    color: #047bb6;
    font-size: 12px;
}

.oper-adm-register__station-more span {
    margin-top: 2px;
    color: #7890a6;
    font-size: 11px;
}

.oper-adm-register__station-picker {
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 100%;
}

.oper-adm-register__station-picker .oper-adm-register__section-title {
    margin-bottom: 4px;
}

.oper-adm-register__station-picker .oper-adm-register__search {
    margin-bottom: 4px;
}

.oper-adm-register__station-list,
.oper-adm-register__issue-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.oper-adm-register__station-map-box {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    min-height: 260px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    padding: 16px 18px;
    box-sizing: border-box;
}

.oper-adm-register__station-map-host {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.oper-adm-register__station-map {
    width: 100%;
    height: 100%;
    min-height: 260px;
}

.oper-adm-register__empty {
    display: grid;
    min-height: 96px;
    place-items: center;
    color: #64748b;
    font-size: 14px;
}

.oper-adm-register .table-scroll {
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    max-height: 360px;
    min-height: 120px;
    padding-right: 6px;
    box-sizing: border-box;
}

.oper-adm-register__type-scroll.table-scroll {
    flex: 0 1 auto;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    padding-right: 6px;
    box-sizing: border-box;
}

.oper-adm-register__group-list,
.oper-adm-register__type-grid,
.oper-adm-register__target-list,
.oper-adm-register__assign-devices,
.oper-adm-register__station-list,
.oper-adm-register__issue-list {
    width: 100%;
    min-width: 0;
    height: auto !important;
    overflow: visible !important;
}

#operAdmDetailModal .oper-adm-detail__work-panel {
    height: clamp(330px, calc(100vh - 350px), 506px);
    height: clamp(330px, calc(100dvh - 350px), 506px);
    min-height: 0;
    overflow: hidden;
}

#operAdmDetailModal .oper-adm-detail__body {
    flex: 1 1 auto;
    min-height: 0;
}

#operAdmDetailModal .oper-adm-detail__layout {
    flex: 0 0 auto;
    min-height: 0;
}

#operAdmDetailModal .oper-adm-detail__device-panel,
#operAdmDetailModal .oper-adm-detail__map-panel {
    height: clamp(330px, calc(100vh - 350px), 506px);
    height: clamp(330px, calc(100dvh - 350px), 506px);
    min-height: 0;
}

#operAdmDetailModal .oper-adm-detail__device-panel {
    padding-right: 6px;
}

#operAdmDetailModal .oper-adm-detail__tab-panel {
    overflow: hidden;
}

/* Outer modal areas must not scroll; only nested lists/panels scroll. */
#operAdmDetailModal .oper-adm-detail__body-scroll,
#operAdmRegisterModal .modal__body,
#operAdmEditModal .modal__body,
#operAdmRegisterModal .oper-adm-register__panel,
#operAdmEditModal .oper-adm-register__panel {
    overflow: hidden !important;
}

.oper-adm__issue-tag { margin-left: 6px; }
.oper-adm__issue-flag {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 5px;
    color: #de3412;
    font-size: 12px;
    font-weight: 600;
    vertical-align: middle;
}
.oper-adm__issue-flag svg { flex: 0 0 auto; }

/* 목록 상태 칸: 배지는 그대로 두고 아이콘만 배지 바로 오른쪽에 덧붙임 */
.oper-adm__status-wrap { position: relative; display: inline-block; }
.oper-adm__status-wrap .oper-adm__issue-flag {
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 5px;
}

/* 작업이력 타임라인 현장이슈발생(3E) 빨간 점 */
.oper-adm-detail__timeline-item--issue::before,
.oper-adm-detail__timeline-item--issue.is-active::before {
    background: #de3412;
}

/* 이슈현황 탭 - issue_content 상세 텍스트 */
.oper-adm-detail__timeline-issue-text {
    margin: 3px 0 0;
    padding: 0;
    background: none;
    font-size: 13px;
    line-height: 1.5;
    color: #111827;
    font-weight: 500;
    white-space: pre-wrap;
    word-break: break-word;
}

/* 이슈현황 날짜는 연하게 (oper/adm·assign 공통) */
#operAdmIssueTimeline .oper-adm-detail__timeline-meta,
#operAssignIssueTimeline .oper-adm-detail__timeline-meta {
    color: #aab4c0;
    font-weight: 500;
}

#oper_adm_page .oper-summary .app-adm-status-card--issue {
    background: #fdecec;
}

#oper_adm_page .oper-summary .app-adm-status-card--issue .app-adm-status-card__value strong {
    color: #de3412;
}

/* ===== 이슈 조치 버튼/채팅 모달 ===== */
#operAdmIssueModal.modal-backdrop {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.45);
    z-index: 10000;
}
#operAdmIssueModal.modal-backdrop[data-open="true"],
#operAdmIssueModal.modal-backdrop.active {
    display: flex;
}

.oper-adm-detail__issue-btn { background:#de3412; color:#fff; border:0; }
.oper-adm-detail__issue-btn:hover { background:#c12d10; }

.oper-adm-issue-modal {
    width: min(520px, calc(100vw - 32px));
    height: min(640px, calc(100vh - 64px));
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    border-radius: 18px;
    background: #fff !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
}
.oper-adm-issue-modal .modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
    min-height: 56px;
    padding: 0 20px;
    border-bottom: 1px solid #d9e2ec;
    background: #047bb6;
}
.oper-adm-issue-modal .modal__title {
    margin: 0;
    color: #fff;
    font-size: 19px;
    font-weight: 500;
}
.oper-adm-issue-modal .modal__close {
    width: 36px;
    height: 36px;
    border: 0;
    background: transparent;
    color: transparent;
    cursor: pointer;
    position: relative;
}
.oper-adm-issue-modal .modal__close::before,
.oper-adm-issue-modal .modal__close::after {
    content: "";
    position: absolute;
    top: 17px;
    left: 8px;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
}
.oper-adm-issue-modal .modal__close::before { transform: rotate(45deg); }
.oper-adm-issue-modal .modal__close::after { transform: rotate(-45deg); }
.oper-adm-issue-modal .modal__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    overflow: hidden;
    background: #f4f7fb;
    padding: 14px;
}
.oper-adm-issue-modal .modal__footer {
    display: flex;
    gap: 8px;
    flex: 0 0 auto;
    padding: 10px 20px;
    border-top: 1px solid #d9e2ec;
    background: #fff;
}
/* SimpleBar 호스트: flex 컨테이너가 아니어야 하며, 부모(modal__body)의 stretch로 확정 높이를 받음 */
.oper-adm-issue-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    overflow-y: auto;
}

.oper-adm-issue-chat { display:flex; flex-direction:column; gap:12px; }
.oper-adm-issue-chat__empty { margin:auto; color:#94a3b8; text-align:center; }
.oper-adm-issue-compose { align-items: center; }
.oper-adm-issue-msg { display:flex; flex-direction:column; max-width:82%; }
.oper-adm-issue-msg--issue { align-self:flex-start; align-items:flex-start; }
.oper-adm-issue-msg--resolve { align-self:flex-end; align-items:flex-end; }
.oper-adm-issue-msg__bubble { padding:8px 12px; border-radius:12px; }
.oper-adm-issue-msg--issue .oper-adm-issue-msg__bubble { background:#fdecec; border:1px solid #f5c2c0; }
.oper-adm-issue-msg--resolve .oper-adm-issue-msg__bubble { background:#eaf6ec; border:1px solid #b7e0bf; }
.oper-adm-issue-msg__tag { display:inline-block; font-size:11px; font-weight:700; margin-bottom:4px; }
.oper-adm-issue-msg--issue .oper-adm-issue-msg__tag { color:#de3412; }
.oper-adm-issue-msg--resolve .oper-adm-issue-msg__tag { color:#228738; }
.oper-adm-issue-msg__text { margin:0; font-size:14px; line-height:1.45; white-space:pre-wrap; word-break:break-word; color:#1f2937; }
.oper-adm-issue-msg__meta { margin-top:4px; font-size:11px; color:#94a3b8; }
.oper-adm-issue-input { flex:1; resize:none; padding:10px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; }
.oper-adm-issue-send { flex:0 0 auto; }
