/* 0cc VER4 UI 전용 브리지 */
.topin{max-width:1480px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.table-scroll{width:100%;overflow-x:auto}
.inline-form{display:inline}
.empty-cell{text-align:center;color:var(--occ-muted);padding:28px}
.date-cell{white-space:nowrap;font-size:12px;color:var(--occ-muted)}
.compact-titlebar{align-items:center;margin-bottom:12px}
.compact-titlebar h1{margin-top:0}
.field-block{display:grid;gap:6px;margin-bottom:14px}
.checkline{display:flex!important;align-items:flex-start;gap:8px;font-weight:700}
.checkline input{width:auto;margin-top:3px}

.b-queued{color:#475569;background:#f8fafc;border-color:#dbe3ec}
.b-active{color:#9a3412;background:#fff7ed;border-color:#fed7aa}
.b-closed{color:#166534;background:#f0fdf4;border-color:#bbf7d0}
.o-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}
.o-failed{color:#b91c1c;background:#fef2f2;border-color:#fecaca}
.o-cancelled{color:#6b21a8;background:#faf5ff;border-color:#e9d5ff}
.alert.blue{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}
.halt{margin-top:0}

.status-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 15px;position:relative}
.status-current{display:flex;align-items:center;gap:9px;min-width:0}
.status-current b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-label{font-size:11px;font-weight:850;color:var(--occ-blue);letter-spacing:.04em}
.status-nodes{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.node-inline{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap;color:#475467}
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#98a2b3;flex:0 0 auto}
.status-dot.n-ok,.n-ok.status-dot{background:#12b76a}
.status-dot.n-busy,.n-busy.status-dot{background:#f79009}
.status-dot.n-warn,.n-warn.status-dot{background:#d92d20}
.status-dot.n-dead,.n-dead.status-dot{background:#98a2b3}

.ui-job-table{table-layout:fixed}
.ui-job-table th:nth-child(1){width:auto}
.ui-job-table th:nth-child(2){width:140px}
.ui-job-table th:nth-child(3),.ui-job-table th:nth-child(4){width:92px}
.ui-job-table th:nth-child(5){width:100px}
.ui-job-table th:nth-child(6){width:150px}
.ui-job-table tbody tr:hover td{background:#f8fbff}
.job-title-line{overflow:hidden}
.job-title-link{font-size:14px;font-weight:800;color:#0f3f92;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job-title-link:hover{text-decoration:underline}
.job-identity-inline{margin-top:5px}
.form-card{max-width:920px}
.build-guide{margin:0 0 14px}

.login-page{min-height:100vh;display:grid;place-items:start center;padding:8vh 16px 32px}
.occ-loginbox{width:min(440px,100%);margin:0;padding:30px}
.login-brand{text-align:center;margin-bottom:24px}
.login-brand img{display:block;width:240px;max-width:85%;height:auto;margin:0 auto 10px;filter:drop-shadow(0 10px 20px rgba(15,23,42,.12))}
.login-brand p{margin:0;color:var(--occ-muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.login-submit{width:100%}

.profile-summary-card{display:grid;gap:14px}
.profile-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.profile-summary-grid>div{padding:11px 12px;border:1px solid var(--occ-line);border-radius:10px;background:#f8fafc;min-width:0}
.profile-summary-grid span,.request-meta-grid span{display:block;color:var(--occ-muted);font-size:11px;font-weight:750;margin-bottom:4px}
.profile-summary-grid b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.profile-file-stats{display:flex;gap:7px;flex-wrap:wrap}
.file-stat{padding:6px 9px;border:1px solid var(--occ-line);border-radius:999px;background:#fff;color:var(--occ-muted);font-size:11px}
.file-stat.on{border-color:#9fc0ff;background:var(--occ-blue-soft);color:var(--occ-blue)}
.profile-tabs{display:flex;gap:7px;flex-wrap:wrap}
.profile-toc{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 14px;padding:11px 13px;border:1px solid var(--occ-line);border-radius:12px;background:#fff}
.profile-toc>span{font-size:11px;font-weight:850;color:var(--occ-muted);margin-right:4px}
.profile-toc a{padding:6px 9px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;text-decoration:none;font-size:12px;font-weight:750}
.profile-workspace{overflow:visible}
.profile-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
.profile-workspace-head h2{margin:0 0 4px}
.profile-workspace-head p{margin:0}
.profile-view-mode{display:grid;gap:9px}
.profile-section{border:1px solid var(--occ-line);border-left:4px solid #9fc0ff;border-radius:10px;background:#fbfdff;scroll-margin-top:150px;overflow:hidden}
.profile-section>summary{padding:11px 13px;font-weight:850;cursor:pointer;background:#f8fafc}
.profile-section[open]>summary{border-bottom:1px solid var(--occ-line)}
.profile-section pre{margin:0;padding:13px 15px;white-space:pre-wrap;word-break:break-word;font-family:Consolas,'D2Coding',monospace;font-size:13px;line-height:1.65;background:#fff;color:#27364a;max-height:520px;overflow:auto}
.profile-edit-mode textarea{min-height:620px;font-family:Consolas,'D2Coding',monospace;font-size:13px;line-height:1.55;tab-size:4}
.profile-savebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}

.job-detail-wrap{max-width:1480px}
.job-summary-sticky{position:sticky;top:76px;z-index:35;overflow:visible;border-top:3px solid var(--occ-blue);box-shadow:0 8px 24px rgba(15,23,42,.12)}
.job-summary-grid{display:grid;grid-template-columns:minmax(300px,1.25fr) minmax(310px,1fr) auto;gap:18px;align-items:center}
.job-summary-identity{min-width:0}
.job-title-row{display:flex;align-items:center;gap:8px;min-width:0}
.job-title-row h1{font-size:21px;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job-subline{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px;color:var(--occ-muted);font-size:11px}
.job-subline>span:not(.badge)+span:not(.badge)::before{content:'·';margin-right:7px;color:#98a2b3}
.job-summary-state{min-width:0}
.current-step-line{display:flex;align-items:center;justify-content:space-between;gap:8px}
.current-step-line b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.current-step-line span,.current-step-meta{color:var(--occ-muted);font-size:11px}
.job-progress{height:7px;margin:8px 0 7px}
.node-status-line{display:flex;gap:12px;flex-wrap:wrap;color:#475467;font-size:11px}
.node-status-line span{display:inline-flex;align-items:center;gap:5px}
.job-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.job-summary-actions form{margin:0}
.menu-note{display:block;padding:8px 10px;color:var(--occ-muted);font-size:12px}
.clarify-priority-card{border-color:#9fc0ff;background:#f8fbff}
.clarify-question{white-space:pre-wrap;word-break:break-word;padding:11px 13px;margin:0 0 12px;border:1px solid #bfd5ff;border-radius:10px;background:#fff;font-size:13px;line-height:1.55}

.ladder-card{overflow:visible}
.section-heading-with-jump h2{margin:0}
.section-heading-with-jump .eyebrow{margin:0 0 3px}
.ladder-table{table-layout:fixed}
.ladder-table th:nth-child(1){width:70px}.ladder-table th:nth-child(2){width:230px}.ladder-table th:nth-child(3){width:90px}.ladder-table th:nth-child(4){width:110px}.ladder-table th:nth-child(5){width:auto}.ladder-table th:nth-child(6){width:60px}.ladder-table th:nth-child(7){width:145px}
.ladder-table td{vertical-align:middle;font-size:12px}
.ladder-label{display:block;font-weight:800}.ladder-table td small{display:block;color:var(--occ-muted);font-size:10px;margin-top:2px}
.r-pass td{background:#f2fbf5}.r-fail td{background:#fff1f0}.r-inherit td{background:#f8fafc;color:#667085}.r-notrun td{background:#fafafa;color:#98a2b3}.r-cancelled td{background:#faf5ff}
.ladder-table tr.cur td{box-shadow:inset 0 2px 0 #175cd3,inset 0 -2px 0 #175cd3;background:#eff6ff}
.result-label{font-weight:800;white-space:nowrap}
.ladder-message{margin:0}.ladder-message>summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;line-height:1.4;list-style:none}.ladder-message>summary::-webkit-details-marker{display:none}.ladder-message>div{margin-top:7px;padding:8px 9px;border:1px solid var(--occ-line);border-radius:8px;background:#fff;white-space:pre-wrap;word-break:break-word;line-height:1.5}
.ladder-group-row td{padding:0;background:#f7fcf8}
.ladder-pass-group>summary{display:flex;align-items:center;gap:9px;padding:9px 11px;cursor:pointer;list-style:none}.ladder-pass-group>summary::-webkit-details-marker{display:none}.ladder-pass-group>summary .muted{margin-left:auto;font-size:11px}
.group-rows{border-top:1px solid #d9eee0;background:#fff}.group-row{display:grid;grid-template-columns:70px 220px 80px minmax(200px,1fr) 145px;gap:10px;padding:8px 11px;border-bottom:1px solid #edf3ef;align-items:center;font-size:11px}.group-row:last-child{border-bottom:0}.group-row>span:nth-child(4){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475467}

.request-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:12px}
.request-meta-grid>div{padding:9px 10px;border:1px solid var(--occ-line);border-radius:9px;background:#f8fafc}
.request-text,.supplement-view>div{white-space:pre-wrap;word-break:break-word;line-height:1.65;padding:13px;border:1px solid var(--occ-line);border-radius:10px;background:#fff}
.supplement-view{margin-top:12px}.supplement-view>b{display:block;margin-bottom:6px}
.support-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.support-action-panel{padding:13px;border:1px solid var(--occ-line);border-radius:11px;background:#fbfdff;min-width:0}
.support-action-panel h3{margin:0 0 10px}.support-action-panel textarea{min-height:150px}.compact-panel{grid-column:1/-1}
.event-table{min-width:850px}

@media(max-width:1050px){
  .profile-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .job-summary-grid{grid-template-columns:1fr 1fr}.job-summary-actions{grid-column:1/-1;justify-content:flex-start}
  .support-action-grid{grid-template-columns:1fr}
  .compact-panel{grid-column:auto}
}
@media(max-width:760px){
  .status-strip{align-items:flex-start;flex-direction:column}.status-nodes{justify-content:flex-start}
  .ui-job-table{min-width:820px}
  .profile-summary-grid,.request-meta-grid{grid-template-columns:1fr}
  .profile-workspace-head{flex-direction:column}
  .profile-edit-mode textarea{min-height:480px}
  .job-summary-sticky{top:112px}
  .job-summary-grid{grid-template-columns:1fr;gap:10px}.job-summary-actions{grid-column:auto;justify-content:flex-start}
  .ladder-table{min-width:920px}
  .group-row{grid-template-columns:60px 180px 70px minmax(180px,1fr) 135px}
}

/* 오류 재검토 반영 - 표시 전환과 좁은 화면 보정 */
[hidden]{display:none!important}
.ladder-group-row.group-inherit td,.ladder-group-row.group-notrun td{background:#f8fafc}
.ladder-group-row.group-pending td{background:#eff6ff}
.ladder-group-row.group-inherit .group-rows,.ladder-group-row.group-notrun .group-rows{border-top-color:#e2e8f0}
.ladder-group-row.group-pending .group-rows{border-top-color:#bfdbfe}
@media(max-width:760px){
  .top .user{display:block}
  .table-scroll>table{display:table;white-space:normal}
  .job-summary-sticky{position:static;top:auto}
  .node-inline,.node-status-line span{white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:720px){
  .top nav{flex:0 0 100%;width:100%}
}

/* VER4.4 엔진 배치 표기 - 담당 열에 모델명이 들어가므로 폭을 넓힌다 */
.ladder-table th:nth-child(3){width:170px}
.ladder-table td:nth-child(3) small{display:block;color:var(--occ-muted);font-size:10px;margin-top:2px;overflow-wrap:anywhere}
.group-row{grid-template-columns:70px 220px 170px minmax(180px,1fr) 145px}
.group-row>span:nth-child(3) small{display:block;color:var(--occ-muted);font-size:10px;margin-top:2px;overflow-wrap:anywhere}
@media(max-width:1200px){
  .group-row{grid-template-columns:60px 180px 150px minmax(160px,1fr) 135px}
}

/* 헤더 사용자 영역 - 이름 + 아이콘 링크 (2026-08 추가) */
/*  컨테이너(.user)의 display 는 건드리지 않는다. 기존 반응형 규칙과 충돌한다 */
.top .user .me-name{margin-right:4px;font-size:12px;font-weight:750;color:#475467;vertical-align:middle}
.top .user a.me-ico{display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;margin-left:2px;vertical-align:middle;border-radius:8px;
  color:#475467;text-decoration:none}
.top .user a.me-ico svg{display:block}
.top .user a.me-ico:hover{background:#eff6ff;color:#0b63c9}
.top .user a.me-ico.on{background:#eff6ff;color:#0b63c9}
