/* Main plant map and SYSTEM LIST styles. */
body {
            margin: 0;
            background-color: #F2F2F2;
            font-family: "맑은 고딕", Arial, sans-serif;
        }

        header {
            background-color: #1F4E78;
            color: white;
            padding: 20px;
            text-align: center;
        }

        main {
            padding: 30px;
        }

        .plant-container {
            display: flex;
            gap: 20px;
            flex-wrap: wrap;
        }

        .plant-card {
            width: 250px;
            background-color: white;
            border: 1px solid #CCCCCC;
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
        }

        .plant-card h2 {
            margin-top: 0;
            color: #1F4E78;
        }

        .plant-button {
            width: 100%;
            padding: 12px;
            background-color: #5B9BD5;
            color: white;
            border: none;
            border-radius: 6px;
            font-weight: bold;
            cursor: pointer;
        }

        .plant-button:hover {
            background-color: #1F4E78;
        }

        .plant-view {
            display: none;
            background-color: white;
            padding: 25px;
            border: 1px solid #CCCCCC;
            border-radius: 10px;
        }

        .plant-view h2 {
            color: #1F4E78;
        }

        .back-button {
            padding: 10px 18px;
            background-color: #666666;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
        }

        .back-button:hover {
            background-color: #333333;
        }
.plant-image-box {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin-top: 20px;
    border: 2px solid #1F4E78;
    background-color: white;
}

.plant-image {
    display: block;
    width: 100%;
    height: auto;
}

.hotspot {
    position: absolute;
    transform: translate(-50%, -50%);

    width: 24px;
    height: 24px;
    padding: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background-color: #FF0000;
    color: white;

    border: 3px solid white;
    border-radius: 50%;

    font-size: 12px;
    font-weight: bold;
    line-height: 1;

    cursor: pointer;
    z-index: 30;

    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.hotspot:hover {
    width: 32px;
    height: 32px;
    background-color: #FFFF00;
    color: black;
}

/* 두 자리 숫자용 Hotspot: 크기는 동일, 글자만 축소 */
.hotspot.double-digit {
    font-size: 10px;
    padding: 0;
}

.image-error {
    padding: 30px;
    background-color: #FFF3CD;
    color: #664D03;
    border: 1px solid #FFECB5;
    font-weight: bold;
    line-height: 1.7;
}













/* =========================================================
   SHAHEEN PKG 선택 화면
========================================================= */

.shaheen-package-select {
    display: flex;
    justify-content: center;
    gap: 25px;
    flex-wrap: wrap;
    margin: 30px 0;
}

.shaheen-package-card {
    width: 260px;
    min-height: 150px;
    padding: 25px 20px;

    background: linear-gradient(135deg, #1f4e78, #2f75b5);
    color: white;

    border: none;
    border-radius: 14px;

    cursor: pointer;
    text-align: center;

    box-shadow: 0 5px 14px rgba(0, 0, 0, 0.25);
    transition: transform 0.2s, box-shadow 0.2s;
}

.shaheen-package-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 9px 20px rgba(0, 0, 0, 0.32);
}

.shaheen-package-card h3 {
    margin: 0 0 12px 0;
    font-size: 25px;
}

.shaheen-package-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
}




/* Label을 Hotspot 아래에 표시 */






/* =========================================================
   공통 화면 이동 버튼
========================================================= */

.shaheen-navigation {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    width: 100%;
    margin-top: 20px;
}

/* PKG 선택으로 / PLANT 목록으로 공통 형식 */
.package-back-button {
    padding: 10px 18px;

    border: none;
    border-radius: 7px;

    background-color: #5b6573;
    color: white;

    font-size: 14px;
    font-weight: bold;

    cursor: pointer;
}

.package-back-button:hover {
    background-color: #414a56;
}


/* =========================================================
   모든 Plant 공통 HOTSPOT / LABEL 형식 - SHAHEEN 기준
========================================================= */

.hotspot-label {
    position: absolute;

    background-color: rgba(31, 78, 120, 0.90);
    color: white;

    border-radius: 5px;
    padding: 5px 8px;

    max-width: 190px;
    white-space: normal;
    text-align: center;

    font-size: 11px;
    font-weight: bold;
    line-height: 1.3;

    pointer-events: none;
    z-index: 20;
}

/* Label을 Hotspot 바로 아래쪽에 표시 */
.hotspot-label.below {
    transform: translate(-50%, 20px);
}

/* 모든 Plant에서 동일한 Label 크기 사용 */
.hotspot-label.shaheen-label {
    min-width: 36px;
}


/* =========================================================
   SYSTEM LIST FULL PAGE
========================================================= */

.system-list-page {
    position: fixed;
    inset: 0;
    z-index: 1000;
    overflow: auto;
    box-sizing: border-box;
    background-color: #F1F4F6;
}

.system-list-page[hidden] {
    display: none;
}

.system-list-page-shell {
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #FFFFFF;
}

.system-list-page-header {
    position: sticky;
    top: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px;
    background-color: #1F4E78;
    color: #FFFFFF;
}

.system-list-page-title-wrap {
    min-width: 0;
}

.system-list-page-title {
    margin: 0;
    font-size: 19px;
    line-height: 1.2;
}

.system-list-page-subtitle {
    margin: 2px 0 0;
    font-size: 11px;
    line-height: 1.2;
    color: #D9EAF7;
}

.system-list-page-back {
    flex: 0 0 auto;
    min-height: 32px;
    padding: 5px 10px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 4px;
    background-color: rgba(255, 255, 255, 0.16);
    color: #FFFFFF;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.system-list-page-back:hover {
    background-color: rgba(255, 255, 255, 0.30);
}

.system-list-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 7px 14px;
    border-bottom: 1px solid #D9E2F3;
    background-color: #F7FAFD;
}

.system-search {
    flex: 1 1 320px;
    min-width: 220px;
    padding: 10px 12px;
    border: 1px solid #A6B6C8;
    border-radius: 6px;
    font-family: inherit;
    font-size: 14px;
}

.system-search:focus,
.system-type-filter:focus {
    outline: 2px solid #5B9BD5;
    outline-offset: 1px;
}

.system-type-filter {
    flex: 0 0 180px;
    min-width: 150px;
    padding: 10px 12px;
    border: 1px solid #A6B6C8;
    border-radius: 6px;
    background-color: #FFFFFF;
    font-family: inherit;
    font-size: 14px;
}

.system-report-notice {
    padding: 8px 16px;
    border-bottom: 1px solid #D9E2F3;
    background-color: #FFF8E1;
    color: #6B5700;
    font-size: 12px;
    line-height: 1.5;
}

.system-count {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    background-color: #D9EAF7;
    color: #1F4E78;
    font-size: 13px;
    font-weight: bold;
}

.system-table-wrap {
    overflow: auto;
    min-height: 180px;
}

.system-list-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 13px;
}

.system-list-table th,
.system-list-table td {
    padding: 9px 10px;
    border-right: 1px solid #E1E7EE;
    border-bottom: 1px solid #E1E7EE;
    text-align: left;
    vertical-align: middle;
    word-break: break-word;
}

.system-list-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background-color: #D9EAF7;
    color: #1F4E78;
    font-weight: bold;
    text-align: center;
}

.system-list-table tbody tr:nth-child(even) {
    background-color: #F8FAFC;
}

.system-list-table tbody tr:hover {
    background-color: #FFF2CC;
}

.system-list-table .col-no {
    width: 46px;
    text-align: center;
}

.system-list-table .col-panel {
    width: 23%;
}

.system-list-table .col-type {
    width: 10%;
    text-align: center;
}

.system-list-table .col-station {
    width: 14%;
    text-align: center;
}

.system-list-table .col-report {
    width: 48%;
    min-width: 560px;
}

.system-type-badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    background-color: #EAF2F8;
    color: #1F4E78;
    font-size: 12px;
    font-weight: bold;
    white-space: nowrap;
}

.system-empty {
    padding: 34px 20px !important;
    color: #666666;
    text-align: center !important;
}


.report-rounds {
    display: grid;
    grid-template-columns: repeat(2, minmax(245px, 1fr));
    gap: 7px;
}

.report-round {
    padding: 7px;
    border: 1px solid #CBD7E3;
    border-radius: 7px;
    background-color: #F8FAFC;
}

.report-round-title {
    display: block;
    margin-bottom: 5px;
    color: #1F4E78;
    font-size: 11px;
    font-weight: bold;
}

.report-item {
    display: grid;
    grid-template-columns: minmax(76px, 1fr) auto auto auto;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}

.report-item-name {
    overflow: hidden;
    color: #333333;
    font-size: 11px;
    font-weight: bold;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.report-upload-label,
.report-open-button,
.report-delete-button {
    min-height: 25px;
    padding: 4px 7px;
    border: 0;
    border-radius: 4px;
    font-family: inherit;
    font-size: 10px;
    font-weight: bold;
    line-height: 1;
    cursor: pointer;
}

.report-upload-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #5B9BD5;
    color: #FFFFFF;
}

.report-upload-label:hover {
    background-color: #1F4E78;
}

.report-upload-label input {
    display: none;
}

.report-open-button {
    background-color: #70AD47;
    color: #FFFFFF;
}

.report-open-button:disabled {
    background-color: #C8D0D8;
    color: #66727E;
    cursor: default;
}

.report-delete-button {
    background-color: #E7E9EC;
    color: #666666;
}

.report-delete-button:disabled {
    color: #A8AFB6;
    cursor: default;
}

.report-file-name {
    grid-column: 1 / -1;
    min-height: 14px;
    overflow: hidden;
    color: #666666;
    font-size: 9px;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .report-rounds {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .system-list-page-header {
        padding: 8px 10px;
    }

    .system-list-table {
        min-width: 1250px;
    }
}

.report-refresh-button {
    margin-left: 6px;
    padding: 5px 10px;
    border: 0;
    border-radius: 5px;
    background-color: #1F4E78;
    color: #FFFFFF;
    font-family: inherit;
    font-size: 11px;
    font-weight: bold;
    cursor: pointer;
}

.report-refresh-button:hover {
    background-color: #163A5C;
}

.report-link,
.report-missing {
    display: inline-flex;
    min-width: 58px;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    padding: 5px 8px;
    border-radius: 5px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
}

.report-upload-button,
.report-replace-button {
    min-height: 28px;
    padding: 5px 8px;
    border: 1px solid #1F4E78;
    border-radius: 5px;
    background: #FFFFFF;
    color: #1F4E78;
    font: 800 10px/1.1 inherit;
    cursor: pointer;
}
.report-upload-button:hover,.report-replace-button:hover{background:#EAF2F8}
.report-upload-status{display:block;margin-top:5px;font-weight:800;color:#1F4E78}
.report-upload-status.success{color:#548235}.report-upload-status.error{color:#C00000}

.report-link {
    background-color: #70AD47;
    color: #FFFFFF;
}

.report-link:hover {
    background-color: #548235;
}

.report-missing {
    background-color: #E7E9EC;
    color: #8A939C;
    border: 1px solid #A6B6C8;
    cursor: pointer;
}

.report-item {
    grid-template-columns: minmax(82px, 1fr) minmax(84px, auto);
}

.report-file-name,
.report-upload-label,
.report-open-button,
.report-delete-button {
    display: none !important;
}


.report-action-group{
  display:grid;
  grid-template-columns:minmax(48px,52px) minmax(58px,64px) minmax(32px,36px);
  gap:4px;
  align-items:center;
  justify-content:flex-end;
}
.report-create-link{
  display:inline-flex;
  min-width:52px;
  min-height:28px;
  align-items:center;
  justify-content:center;
  padding:5px 8px;
  border-radius:5px;
  background:#ed7d31;
  color:#fff;
  font-size:10px;
  font-weight:900;
  line-height:1.1;
  text-decoration:none;
}
.report-create-link:hover{background:#c55a11}
.report-item{
  grid-template-columns:minmax(74px,1fr) minmax(146px,auto);
}
.report-action-group>.report-missing:only-child{grid-column:2/4}
.report-action-group .report-replace-button{min-width:32px;padding-left:5px;padding-right:5px}


.hotspot-txt-import-button,
.hotspot-txt-clear-button{
    min-height:38px;
    border:0;
    border-radius:6px;
    padding:8px 11px;
    color:#FFFFFF;
    font-family:inherit;
    font-size:11px;
    font-weight:900;
    cursor:pointer;
    white-space:nowrap;
}
.hotspot-txt-import-button{background:#70AD47}
.hotspot-txt-import-button:hover{background:#548235}
.hotspot-txt-clear-button{background:#7F8C8D}
.hotspot-txt-clear-button:hover{background:#626F70}
.hotspot-txt-import-button:disabled,
.hotspot-txt-clear-button:disabled{
    opacity:.45;
    cursor:not-allowed;
}
.hotspot-txt-status{
    padding:8px 14px;
    border-bottom:1px solid #AAB7C2;
    background:#F3F7FA;
    color:#425563;
    font-size:11px;
    font-weight:800;
    line-height:1.45;
}
.hotspot-txt-status.success{
    background:#F1FFF0;
    color:#2F6B20;
}
.hotspot-txt-status.warning{
    background:#FFF7E6;
    color:#8A5A00;
}
.hotspot-txt-status.error{
    background:#FFF0F0;
    color:#8B0000;
}
.station-with-txt{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    flex-wrap:wrap;
}
.txt-ready-badge,
.txt-missing-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:20px;
    padding:3px 6px;
    border-radius:10px;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}
.txt-ready-badge{
    background:#E2F0D9;
    color:#2F6B20;
    border:1px solid #70AD47;
}
.txt-missing-badge{
    background:#F1F2F4;
    color:#7A848C;
    border:1px solid #B7C0C7;
}
.report-create-link.txt-ready{
    background:#70AD47;
}
.report-create-link.txt-ready:hover{
    background:#548235;
}
@media(max-width:1000px){
    .system-list-toolbar{
        flex-wrap:wrap;
    }
}

/* v10.3-05 unified authoring state and stable report-card layout */
.system-list-table .col-panel{width:18%}
.system-list-table .col-type{width:8%}
.system-list-table .col-station{width:13%}
.system-list-table .col-report{width:56%;min-width:650px}
.report-rounds{grid-template-columns:repeat(2,minmax(285px,1fr));align-items:start}
.report-round{min-width:0;height:100%;box-sizing:border-box}
.report-item{grid-template-columns:minmax(72px,1fr) 158px;min-width:0}
.report-action-group{grid-template-columns:54px 64px 36px;width:158px;min-width:158px;gap:2px;justify-content:start}
.report-create-link,.report-alarm-create-link,.report-link,.report-missing,.report-replace-button{box-sizing:border-box;margin:0;white-space:nowrap}
.report-create-link,.report-alarm-create-link{width:54px;min-width:54px}
.report-link,.report-missing{width:64px;min-width:64px}
.report-replace-button{width:36px;min-width:36px}
.authoring-state-gray{background:#E7E9EC!important;color:#4D5963!important;border:1px solid #A6B6C8!important}
.authoring-state-white{background:#FFFFFF!important;color:#334A5E!important;border:1px solid #A6B6C8!important}
.authoring-state-yellow{background:#FFC000!important;color:#332600!important;border:1px solid #D6A000!important}
.authoring-state-green{background:#70AD47!important;color:#FFFFFF!important;border:1px solid #548235!important}
.report-pdf-gray{background:#E7E9EC!important;color:#4D5963!important;border:1px solid #A6B6C8!important}
.report-pdf-green{background:#70AD47!important;color:#FFFFFF!important;border:1px solid #548235!important}
[data-tooltip]{position:relative}
[data-tooltip]::after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);z-index:30;width:max-content;max-width:220px;padding:5px 7px;border-radius:4px;background:#263746;color:#FFFFFF;font-size:10px;font-weight:700;line-height:1.25;white-space:normal;box-shadow:0 2px 7px rgba(0,0,0,.25);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after{opacity:1;visibility:visible}
.system-status-summary{display:block;padding:5px 14px;border-bottom:1px solid #D5DEE5;background:#F8FAFC}
.status-summary-round{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:0}
.status-summary-round>strong{color:#1F4E78;font-size:11px;text-align:center}
.status-summary-action{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:5px;min-width:66px;min-height:26px;padding:3px 7px;border:1px solid #B8C4CE;border-radius:5px;background:#FFFFFF;color:#334A5E;font:800 10px/1.1 inherit;cursor:pointer;white-space:nowrap}
.status-summary-action b{display:inline-flex;min-width:22px;height:18px;align-items:center;justify-content:center;padding:0 5px;border-radius:9px;background:#E6ECF1;color:#263E52;font-size:10px;line-height:1}
.status-summary-action.status-gray{background:#E7E9EC}.status-summary-action.status-white{background:#FFFFFF}.status-summary-action.status-yellow{background:#FFF2B2}.status-summary-action.status-green{background:#E2F0D9}
.status-summary-action:hover{border-color:#66839B;box-shadow:0 1px 3px rgba(31,78,120,.16)}.status-summary-action:focus-visible{outline:2px solid #1F4E78;outline-offset:2px}.status-summary-action.active{border-color:#1F4E78;background:#1F4E78;color:#FFFFFF;box-shadow:0 2px 5px rgba(31,78,120,.28)}.status-summary-action.active b{background:#FFFFFF;color:#1F4E78}
@media(max-width:1250px){.report-rounds{grid-template-columns:1fr}}


.plant-revinf-panel{
    max-width:1200px;
    margin:16px 0 12px;
    border:1px solid #8EA9C1;
    border-radius:8px;
    overflow:hidden;
    background:#FFFFFF;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.plant-revinf-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    background:#EAF2F8;
    border-bottom:1px solid #AFC3D4;
}
.plant-revinf-title{
    color:#1F4E78;
    font-size:15px;
    font-weight:900;
}
.plant-revinf-help{
    margin-top:4px;
    color:#53636F;
    font-size:11px;
    line-height:1.5;
}
.plant-revinf-actions{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.plant-revinf-import-button,
.plant-revinf-clear-button{
    min-height:37px;
    border:0;
    border-radius:6px;
    padding:8px 13px;
    color:#FFFFFF;
    font-family:inherit;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
    white-space:nowrap;
}
.plant-revinf-import-button{background:#70AD47}
.plant-revinf-import-button:hover{background:#548235}
.plant-revinf-clear-button{background:#7F8C8D}
.plant-revinf-clear-button:hover{background:#626F70}
.plant-revinf-status{
    padding:9px 14px;
    background:#F8FAFB;
    color:#425563;
    font-size:11px;
    font-weight:800;
    line-height:1.5;
}
.plant-revinf-status.success{
    background:#F1FFF0;
    color:#2F6B20;
}
.plant-revinf-status.warning{
    background:#FFF7E6;
    color:#8A5A00;
}
.plant-revinf-status.error{
    background:#FFF0F0;
    color:#8B0000;
}
.plant-system-details{
    border-top:1px solid #D5DEE5;
}
.plant-system-details summary{
    padding:9px 14px;
    background:#F2F6F9;
    color:#334A5E;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
}
.plant-system-count{
    display:inline-flex;
    margin-left:6px;
    padding:2px 7px;
    border-radius:10px;
    background:#1F4E78;
    color:#FFFFFF;
    font-size:10px;
}
.plant-system-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(245px,1fr));
    gap:8px;
    padding:10px;
}
.plant-system-card{
    border:1px solid #C5D1DA;
    border-radius:6px;
    overflow:hidden;
    background:#FFFFFF;
}
.plant-system-card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:7px 9px;
    background:#EAF2F8;
    border-bottom:1px solid #C5D1DA;
}
.plant-system-no{
    color:#1F4E78;
    font-size:13px;
    font-weight:900;
}
.plant-system-type{
    padding:2px 6px;
    border-radius:10px;
    background:#5B9BD5;
    color:#FFFFFF;
    font-size:9px;
    font-weight:900;
}
.plant-system-card-body{
    padding:7px 9px;
    color:#45545F;
    font-size:10px;
    line-height:1.55;
    overflow-wrap:anywhere;
}
.plant-alarm-count{
    display:inline-flex;
    margin-top:5px;
    padding:2px 6px;
    border-radius:10px;
    background:#E2F0D9;
    color:#2F6B20;
    font-size:9px;
    font-weight:900;
}
.plant-alarm-count.has-alarm{
    background:#FCE4D6;
    color:#A03A00;
}
.plant-alarm-lines{
    margin:6px 0 0;
    padding-left:17px;
    color:#8B0000;
}
.plant-system-empty{
    grid-column:1/-1;
    padding:20px;
    text-align:center;
    color:#687680;
    font-size:11px;
}
.station-with-txt{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    flex-wrap:wrap;
}
.txt-ready-badge,
.txt-missing-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:20px;
    padding:3px 6px;
    border-radius:10px;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}
.txt-ready-badge{
    background:#E2F0D9;
    color:#2F6B20;
    border:1px solid #70AD47;
}
.txt-missing-badge{
    background:#F1F2F4;
    color:#7A848C;
    border:1px solid #B7C0C7;
}
.report-create-link.txt-ready{
    background:#70AD47;
}
.report-create-link.txt-ready:hover{
    background:#548235;
}
@media(max-width:800px){
    .plant-revinf-head{
        align-items:stretch;
        flex-direction:column;
    }
    .plant-revinf-actions{
        justify-content:flex-start;
    }
}



/* =========================================================
   RevInf 회차별 ZIP / 상태 표시
========================================================= */
.plant-round-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(150px,1fr));
    gap:8px;
    padding:10px;
    border-top:1px solid #D5DEE5;
    background:#F8FAFB;
}
.plant-round-card{
    padding:9px 10px;
    border:1px solid #C5D1DA;
    border-radius:7px;
    background:#FFFFFF;
    line-height:1.45;
}
.plant-round-card.ready{border-color:#70AD47;background:#F1FFF0}
.plant-round-card.warning{border-color:#ED7D31;background:#FFF7E6}
.plant-round-title{display:block;color:#1F4E78;font-size:12px;font-weight:900}
.plant-round-detail{display:block;margin-top:3px;color:#4D5E6B;font-size:10px}
.round-ready-badge{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:20px;padding:3px 6px;border-radius:10px;
    background:#E2F0D9;color:#2F6B20;border:1px solid #70AD47;
    font-size:9px;font-weight:900;white-space:nowrap;
}
@media(max-width:850px){.plant-round-summary{grid-template-columns:repeat(2,minmax(140px,1fr))}}



/* =========================================================
   Plant별 System Alarm CSV / 회차별 상태
========================================================= */
.plant-alarm-panel{
    max-width:1200px;
    margin:12px 0 16px;
    border:1px solid #A66A3F;
    border-radius:8px;
    overflow:hidden;
    background:#FFFFFF;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.plant-alarm-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    background:#F6E9DF;
    border-bottom:1px solid #C99B79;
}
.plant-alarm-title{color:#6B2F0C;font-size:15px;font-weight:900}
.plant-alarm-help{margin-top:4px;color:#5F5148;font-size:11px;line-height:1.5}
.plant-alarm-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.plant-alarm-import-button,.plant-alarm-clear-button{
    min-height:37px;border:0;border-radius:6px;padding:8px 13px;color:#FFFFFF;
    font-family:inherit;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap;
}
.plant-alarm-import-button{background:#C55A11}.plant-alarm-import-button:hover{background:#9E480E}
.plant-alarm-clear-button{background:#7F8C8D}.plant-alarm-clear-button:hover{background:#626F70}
.plant-alarm-status{padding:9px 14px;background:#FCFAF8;color:#4D4641;font-size:11px;font-weight:800;line-height:1.5}
.plant-alarm-status.success{background:#F1FFF0;color:#2F6B20}
.plant-alarm-status.warning{background:#FFF7E6;color:#8A5A00}
.plant-alarm-status.error{background:#FFF0F0;color:#8B0000}
.plant-alarm-round-summary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;padding:10px;border-top:1px solid #E0CDC0;background:#FCFAF8}
.plant-alarm-round-card{padding:9px 10px;border:1px solid #D8C4B5;border-radius:7px;background:#FFFFFF;line-height:1.45}
.plant-alarm-round-card.ready{border-color:#70AD47;background:#F1FFF0}
.plant-alarm-round-card.warning{border-color:#ED7D31;background:#FFF7E6}
.plant-alarm-round-title{display:block;color:#6B2F0C;font-size:12px;font-weight:900}
.plant-alarm-round-detail{display:block;margin-top:3px;color:#5F5148;font-size:10px}
.alarm-ready-badge,.alarm-missing-badge{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:3px 6px;border-radius:10px;font-size:9px;font-weight:900;white-space:nowrap}
.alarm-ready-badge{background:#FCE4D6;color:#9E480E;border:1px solid #ED7D31}
.alarm-missing-badge{background:#F1F2F4;color:#7A848C;border:1px solid #B7C0C7}
.report-alarm-create-link{display:inline-flex;min-width:52px;min-height:28px;align-items:center;justify-content:center;padding:5px 8px;border-radius:5px;background:#BFBFBF;color:#FFFFFF;font-size:10px;font-weight:900;line-height:1.1;text-decoration:none}
.report-alarm-create-link.ready{background:#C55A11}.report-alarm-create-link:hover{background:#9E480E}
@media(max-width:850px){.plant-alarm-round-summary{grid-template-columns:repeat(2,minmax(140px,1fr))}.plant-alarm-head{align-items:stretch;flex-direction:column}.plant-alarm-actions{justify-content:flex-start}}

.report-create-link.thermal-ready{background:#7a4f9b;border-color:#684084;color:#fff}
.bulk-reference-card{display:grid;grid-template-columns:minmax(280px,1fr) 120px auto;gap:12px;align-items:end;margin:0 0 18px;padding:16px 18px;border:1px solid #b8c8d4;border-left:5px solid #004f9b;border-radius:6px;background:#fff;box-shadow:0 4px 14px #00316c12}.bulk-reference-card h3{margin:0 0 4px;color:#00316c;font-size:17px}.bulk-reference-card p{margin:0;color:#52606b;font-size:12px}.bulk-reference-card label{display:flex;flex-direction:column;gap:5px;color:#334e62;font-size:11px;font-weight:800}.bulk-reference-card select{height:36px;border:1px solid #9dafbc;border-radius:4px;background:#fff;padding:0 8px}.bulk-reference-button{height:36px;border:0;border-radius:4px;background:#004f9b;color:#fff;padding:0 14px;font-weight:800;cursor:pointer}.bulk-reference-status{grid-column:1/-1;padding-top:9px;border-top:1px dashed #c8d2d9;color:#52606b;font-size:12px;white-space:pre-line}.bulk-reference-status.success{color:#2f6b22}.bulk-reference-status.warning{color:#8b4b00}.bulk-reference-status.error{color:#8b0000}@media(max-width:900px){.bulk-reference-card{grid-template-columns:1fr 1fr}.bulk-reference-card>div:first-child{grid-column:1/-1}}
/* Same-origin runtime and compact data-management controls (v10.3). */
.runtime-origin-warning{position:sticky;top:0;z-index:1000;padding:8px 14px;background:#fff2cc;border-bottom:1px solid #c89b00;color:#5e4600;text-align:center;font-size:12px;font-weight:800}
.data-management-bar{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:18px auto 0;padding:12px;width:min(920px,calc(100% - 32px));border:1px solid #ccd4da;background:#f8fafb}
.data-management-bar strong{margin-right:4px;color:#263746}
.data-management-button{border:1px solid #7d8b96;border-radius:3px;background:#fff;color:#263746;padding:7px 12px;font-weight:800;cursor:pointer}
.data-management-button:hover{background:#eef3f7}
.data-management-status{font-size:12px;color:#52616d}
.data-management-status.error{color:#a00000}

/* v10.3-06 Plant-scoped operations and canonical SYSTEM MASTER. */
.system-operations{display:flex;align-items:stretch;justify-content:space-between;gap:10px;margin:5px 14px;padding:0;border:0;background:transparent}
.system-operation-group{display:flex;min-width:0;min-height:44px;flex:1 1 0;align-items:center;padding:6px 10px;border:1px solid #d5dde3;border-radius:5px;background:#f8fafb}
.current-round-group{justify-content:flex-start}
.current-round-control{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:#263746;white-space:nowrap}
.current-round-control select,.system-operation-actions button{min-height:30px;border:1px solid #8795a0;border-radius:4px;background:#fff;color:#263746;font-weight:800;padding:4px 8px}
.system-operation-actions{justify-content:flex-end;gap:7px}.system-operation-actions button{cursor:pointer}.system-operation-actions .pdf-bulk-action{border-color:#9fb9c9;background:#edf5f9;color:#31566e}.system-operation-actions .pdf-merge-action{border-color:#8eafc2;background:#e2eff6;color:#244e68}.system-operation-actions button:hover{border-color:#6f94aa;background:#d7e9f2}.system-operation-actions button:focus-visible{outline:2px solid #547f98;outline-offset:1px}
.report-round.past-collapsed{display:flex;align-items:center;justify-content:space-between;min-height:34px;height:auto;padding:5px 7px;background:#f5f7f8}
.past-round-toggle{min-height:25px;padding:3px 9px;border:1px solid #8e9ba5;border-radius:4px;background:#fff;color:#425563;font-size:10px;font-weight:900;cursor:pointer;white-space:nowrap}
.report-not-applicable,.report-future{display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:28px;border:1px solid #b7c0c7;border-radius:4px;background:#f1f3f5;color:#66717a;font-size:11px;font-weight:800}.report-future{border-color:#a9c6dd;background:#eef7fd;color:#35617e}
.status-summary-action.status-na{border-color:#aeb7bd;background:#f1f3f5;color:#56616a}.status-summary-action.status-na.active{border-color:#1F4E78;background:#1F4E78;color:#FFFFFF}
.management-modal-overlay{position:fixed;inset:0;z-index:1200;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(21,32,41,.6)}
.management-modal-overlay.open{display:flex}.management-modal{width:min(1180px,96vw);max-height:92vh;overflow:auto;border-radius:7px;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.35)}
.management-modal-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #d8dfe4;background:#fff}.management-modal-header h2{margin:0;font-size:20px}.management-modal-close{width:36px;height:36px;border:0;border-radius:50%;background:#eef2f5;font-size:24px;cursor:pointer}
.management-modal-body{padding:16px 18px}.management-help{margin:0 0 12px;color:#5d6a74;font-size:12px}.management-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.management-toolbar select,.management-toolbar input,.management-toolbar button,.management-form input,.management-form select{min-height:34px;border:1px solid #93a0aa;border-radius:4px;background:#fff;padding:6px 9px}.management-toolbar button,.management-form button{font-weight:800;cursor:pointer}
.management-table-wrap{overflow:auto;border:1px solid #d9e0e5}.management-table{width:100%;border-collapse:collapse;font-size:12px}.management-table th,.management-table td{padding:8px;border-bottom:1px solid #e1e6ea;text-align:left;white-space:nowrap}.management-table th{position:sticky;top:0;background:#eef3f6}.management-state{font-weight:900}.management-state.NEW{color:#0a6d31}.management-state.REPLACE{color:#916000}.management-state.MATCH_FAILED,.management-state.PLANT_MISMATCH,.management-state.ROUND_MISMATCH{color:#a00000}
.management-delete{border:1px solid #a33b35!important;color:#8d211c;background:#fff6f5!important}.history-modal{width:min(820px,96vw)}.history-list{display:flex;flex-direction:column;gap:10px}.history-entry{padding:11px 12px;border:1px solid #d7dfe4;border-left:4px solid #54758d;border-radius:4px;background:#fafcfd}.history-entry header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.history-action{font-weight:900;color:#244d69}.history-time{font-size:11px;color:#687680}.history-diff{display:grid;grid-template-columns:minmax(110px,160px) 1fr auto 1fr;gap:6px;align-items:start;padding:4px 0;border-top:1px dashed #dde3e7;font-size:12px}.history-field{font-weight:800}.history-before,.history-after{white-space:pre-wrap;word-break:break-word}.history-arrow{color:#78858e}.history-empty{padding:24px;text-align:center;color:#65727c}
.management-form{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin:14px 0;padding:12px;border:1px solid #d8e0e5;background:#fafcfd}.management-form label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800}.management-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.pdf-result{margin:10px 0;font-weight:800}.pdf-result.error{color:#a00000}.pdf-result.success{color:#087334}
.merge-manager{display:grid;gap:10px;padding-top:12px}.merge-manager>.management-help{margin-bottom:0}.merge-section{padding:12px 14px;border:1px solid #D8E0E6;border-radius:6px;background:#FAFCFD}.merge-section h3{margin:0 0 9px;color:#29475F;font-size:12px}.merge-condition-grid{display:grid;grid-template-columns:1.1fr .75fr 1.2fr 1.15fr;gap:10px;align-items:end}.merge-condition-grid>label{display:flex;min-width:0;flex-direction:column;gap:5px;color:#455D70;font-size:10px;font-weight:800}.merge-condition-grid select,.merge-plant{display:flex;height:34px;align-items:center;border:1px solid #93A0AA;border-radius:4px;background:#FFFFFF;padding:0 9px;color:#263E52}.merge-alarm-option{height:34px;flex-direction:row!important;align-items:center;gap:7px!important;border:1px solid #C1CBD3;border-radius:4px;background:#FFFFFF;padding:0 10px}.merge-alarm-option input{margin:0}.merge-action-section{display:flex;align-items:center;justify-content:space-between;gap:12px}.merge-action-section h3{margin:0}.merge-actions{display:flex;gap:8px}.merge-actions button{height:34px;border-radius:4px;padding:0 14px;font-weight:800;cursor:pointer}.merge-secondary{border:1px solid #718493;background:#FFFFFF;color:#334E62}.merge-primary{border:1px solid #0B5E94;background:#0B5E94;color:#FFFFFF}.merge-primary:hover{background:#084B77}.merge-result-section{padding-bottom:10px}.merge-result{margin:0}.merge-result dl{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:8px;margin:0}.merge-result dl>div{padding:8px 10px;border-radius:4px;background:#EEF3F6}.merge-result dt{margin-bottom:3px;color:#617482;font-size:9px}.merge-result dd{margin:0;color:#20394C;font-size:13px}.merge-result a{color:#0069A8;font-weight:900}.merge-error{padding:9px 10px;border-radius:4px;background:#FFF0F0;color:#A00000}
@media(max-width:760px){.system-operations{gap:6px;margin:7px}.system-operation-group{min-height:40px;padding:5px 6px}.current-round-control{gap:4px;font-size:11px}.current-round-control select,.system-operation-actions button{min-height:28px;padding:3px 5px;font-size:10px}.system-operation-actions{gap:4px}.management-form{grid-template-columns:1fr 1fr}.management-modal-overlay{padding:6px}.management-modal{width:100%;max-height:97vh}}
@media(max-width:760px){.merge-condition-grid{grid-template-columns:1fr 1fr}.merge-result dl{grid-template-columns:1fr 1fr}.merge-action-section{align-items:stretch;flex-direction:column}.merge-actions{justify-content:flex-end}}
.report-blocked,.station-unassigned{display:inline-flex;align-items:center;justify-content:center;padding:3px 6px;border:1px solid #b0443c;background:#fff1f0;color:#8b1e18;font-size:10px;font-weight:900}
