/* 389 총예산과 예비비, 누적 추가 비용의 한도 = 예산 장부와 누적 계단 그래프(2026-10-16 글마다 다른 레이아웃).
   처음은 가운데 '추가 비용'을 둘러싼 관리 장치 넷, 예비비는 칸 나뉜 봉투와 산정 기준 칩, 진행 중 확인은 정기 검토 고리,
   원인은 두 열 표, 누적 비용은 계단 그래프와 재검토 기준선, 지출 상한, 예산 초과는 문 셋, 사업 영향은 물결,
   가격 조정은 끈 달린 가격표, 기관 변경은 승인 사슬, 진행 방식은 계약 조건 세 칸 */
.v-artd .sp-389 .prose{font-size:17px}
.v-artd .sp-389 :where(.prose) .bg-lead{font-size:20px;line-height:1.7;color:var(--ink);margin:0 0 26px}
.v-artd .sp-389 :where(.prose) .bg-lead b{color:var(--blue)}
.v-artd .sp-389 .prose h2{margin:0 0 18px;padding:0;border:0;font-size:27px;letter-spacing:-.8px;display:block;min-height:0}
.v-artd .sp-389 .prose h2::before,.v-artd .sp-389 .prose h2::after{content:none}
.v-artd .sp-389 :where(.prose) .bg-s{padding:60px 0 4px}
.v-artd .sp-389 :where(.prose) .bg-s>p{margin:0 0 16px}
.v-artd .sp-389 .prose ul,.v-artd .sp-389 .prose ol{margin:0;padding:0;list-style:none}
.v-artd .sp-389 .prose li{margin:0}
.v-artd .sp-389 .prose li::before{content:none}

/* 관리 장치 넷 + 가운데 */
.v-artd .sp-389 :where(.prose) .bg-valve{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:70px 90px;padding:10px 0}
.v-artd .sp-389 :where(.prose) .vv{position:relative;padding:18px 18px 16px;border-radius:16px;background:var(--soft);font-size:14.5px;line-height:1.6;color:#4a5060}
.v-artd .sp-389 :where(.prose) .vv span{display:block;font-size:13px;font-weight:800;color:var(--blue)}
.v-artd .sp-389 :where(.prose) .vv b{display:block;margin:2px 0 6px;font-size:16.5px;color:var(--ink)}
.v-artd .sp-389 :where(.prose) .vv p{margin:0}
.v-artd .sp-389 :where(.prose) .vv-c{position:absolute;left:50%;top:50%;width:116px;height:116px;margin:-58px 0 0 -58px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:16px;font-weight:800;box-shadow:0 0 0 10px #fff,0 0 0 12px var(--line)}

/* 예비비: 봉투 + 기준 */
.v-artd .sp-389 :where(.prose) .bg-env{margin:4px 0 16px;padding:18px;border-radius:6px 6px 16px 16px;background:#f3ead6;border:1.5px solid #d9c49a;position:relative}
.v-artd .sp-389 :where(.prose) .bg-env::before{content:"";position:absolute;left:-1.5px;right:-1.5px;top:-28px;height:28px;background:#e8dbbd;border:1.5px solid #d9c49a;border-bottom:0;clip-path:polygon(0 100%,50% 0,100% 100%);border-radius:4px}
.v-artd .sp-389 :where(.prose) .ev-h{margin:0 0 12px;font-size:15px;font-weight:800;color:#5a4500}
.v-artd .sp-389 :where(.prose) .ev-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.v-artd .sp-389 :where(.prose) .ev-row span{padding:14px 8px;border-radius:8px;background:#fff;text-align:center;font-size:15px;font-weight:700;color:var(--ink)}
.v-artd .sp-389 :where(.prose) .ev-row .ev-r{background:var(--navy);color:#fff}
.v-artd .sp-389 :where(.prose) .bg-rsv{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin:4px 0 16px}
.v-artd .sp-389 :where(.prose) .bg-rsv>div{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;padding:16px;border-radius:14px}
.v-artd .sp-389 :where(.prose) .bg-rsv p{width:100%;margin:0 0 2px;font-size:13.5px;font-weight:800}
.v-artd .sp-389 :where(.prose) .rs-y{background:var(--blue2)}
.v-artd .sp-389 :where(.prose) .rs-y p{color:#1d3fc4}
.v-artd .sp-389 :where(.prose) .rs-y span{padding:7px 12px;border-radius:999px;background:#fff;font-size:15px;font-weight:700;color:var(--ink)}
.v-artd .sp-389 :where(.prose) .rs-n{border:1.5px dashed #c4282d}
.v-artd .sp-389 :where(.prose) .rs-n p{color:#b1262b}
.v-artd .sp-389 :where(.prose) .rs-n span{font-size:15px;font-weight:700;color:#b1262b;text-decoration:line-through}

/* 정기 검토 고리 */
.v-artd .sp-389 :where(.prose) .bg-cyc{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;margin:4px 0 14px}
.v-artd .sp-389 :where(.prose) .cy-h{margin:0;width:120px;height:120px;border-radius:50%;border:6px solid var(--blue2);border-top-color:var(--blue);display:grid;place-items:center;font-size:15.5px;font-weight:800;color:var(--ink)}
.v-artd .sp-389 :where(.prose) .bg-cyc li{padding:10px 14px;margin-bottom:6px!important;border-radius:10px;border:1px solid var(--line);font-size:15.5px;font-weight:700;color:var(--ink)}
.v-artd .sp-389 :where(.prose) .bg-note{padding:14px 18px;border-left:6px solid var(--yellow);border-radius:0 12px 12px 0;background:#fffaf0;font-size:15.5px}

/* 원인 표 */
.v-artd .sp-389 :where(.prose) .bg-cause{margin:4px 0 18px;overflow-x:auto}
.v-artd .sp-389 :where(.prose) .bg-cause table{margin:0;font-size:15px;border:1px solid var(--line)}
.v-artd .sp-389 :where(.prose) .bg-cause td:first-child{width:130px;white-space:nowrap}
.v-artd .sp-389 :where(.prose) .bg-cause th{font-size:14px}

/* 누적 계단 그래프 */
.v-artd .sp-389 :where(.prose) .bg-chart{margin:4px 0 18px;padding:18px;border-radius:18px;border:1px solid var(--line)}
.v-artd .sp-389 :where(.prose) .bg-chart svg{display:block;width:100%;height:auto;font-family:inherit}
.v-artd .sp-389 :where(.prose) .bg-chart .rsv{fill:#eef2ff}
.v-artd .sp-389 :where(.prose) .bg-chart .rsv-t{fill:#1d3fc4;font-size:13px;font-weight:800;text-anchor:end}
.v-artd .sp-389 :where(.prose) .bg-chart .cap{stroke:#c4282d;stroke-width:3}
.v-artd .sp-389 :where(.prose) .bg-chart .cap-t{fill:#b1262b;font-size:13px;font-weight:800}
.v-artd .sp-389 :where(.prose) .bg-chart .rev{stroke:#1b1f3a;stroke-width:2;stroke-dasharray:8 6}
.v-artd .sp-389 :where(.prose) .bg-chart .rev-t{fill:#1b1f3a;font-size:13px;font-weight:800}
.v-artd .sp-389 :where(.prose) .bg-chart .st{fill:none;stroke:#2e5bff;stroke-width:4;stroke-linejoin:round}
.v-artd .sp-389 :where(.prose) .bg-chart .hit{fill:#f5b400;stroke:#fff;stroke-width:3}
.v-artd .sp-389 :where(.prose) .bg-chart .hit-t{fill:#5a4500;font-size:13px;font-weight:800}
.v-artd .sp-389 :where(.prose) .bg-chart .ax{stroke:#9aa1b2;stroke-width:1.5}
.v-artd .sp-389 :where(.prose) .bg-chart .ax-t{fill:#5b6475;font-size:13px;font-weight:700;text-anchor:end}
.v-artd .sp-389 :where(.prose) .bg-chart .ax-y{text-anchor:start}
.v-artd .sp-389 :where(.prose) .bg-chart figcaption{margin-top:10px;font-size:15px;color:#4a5060;text-align:left}

/* 문 셋 */
.v-artd .sp-389 :where(.prose) .bg-doors{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:4px 0 16px}
.v-artd .sp-389 :where(.prose) .dr{position:relative;padding:62px 34px 18px 18px;border-radius:60px 60px 10px 10px;border:2px solid var(--ink);font-size:14.5px;line-height:1.6;color:#4a5060}
.v-artd .sp-389 :where(.prose) .dr p{margin:0}
.v-artd .sp-389 :where(.prose) .dr-h{position:absolute;left:0;right:0;top:20px;text-align:center;font-size:19px!important;font-weight:800;color:var(--ink)!important}
.v-artd .sp-389 :where(.prose) .dr::after{content:"";position:absolute;right:13px;top:50%;width:8px;height:8px;border-radius:50%;background:var(--ink)}
.v-artd .sp-389 :where(.prose) .dr:nth-child(1){border-color:var(--blue)}
.v-artd .sp-389 :where(.prose) .dr:nth-child(1) .dr-h{color:var(--blue)!important}
.v-artd .sp-389 :where(.prose) .dr:nth-child(3){border-color:#5b6475}

/* 물결 */
.v-artd .sp-389 :where(.prose) .bg-ripple{position:relative;height:250px;margin:4px 0 16px;border-radius:18px;background:radial-gradient(circle at 50% 50%,#fff 0 60px,var(--blue2) 61px 63px,#fff 64px 100px,#e9edfb 101px 103px,#fff 104px 140px,#f1f3fa 141px 143px,#fff 144px)}
.v-artd .sp-389 :where(.prose) .bg-ripple span{position:absolute;padding:9px 14px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-size:15px;font-weight:700;color:var(--ink);transform:translate(-50%,-50%)}
.v-artd .sp-389 :where(.prose) .rp-c{left:50%;top:50%;background:var(--navy)!important;color:#fff!important;border:0!important;font-weight:800!important}
.v-artd .sp-389 :where(.prose) .bg-ripple span:nth-child(2){left:22%;top:22%}
.v-artd .sp-389 :where(.prose) .bg-ripple span:nth-child(3){left:80%;top:30%}
.v-artd .sp-389 :where(.prose) .bg-ripple span:nth-child(4){left:62%;top:84%}
.v-artd .sp-389 :where(.prose) .bg-sort{display:grid;grid-template-columns:repeat(3,1fr);margin:4px 0 12px;border-radius:12px;overflow:hidden}
.v-artd .sp-389 :where(.prose) .bg-sort span{padding:14px;text-align:center;font-size:15.5px;font-weight:800}
.v-artd .sp-389 :where(.prose) .so-a{background:var(--blue);color:#fff}
.v-artd .sp-389 :where(.prose) .so-b{background:var(--blue2);color:#1d3fc4}
.v-artd .sp-389 :where(.prose) .so-c{background:var(--soft);color:#5b6475}

/* 끈 달린 가격표 */
.v-artd .sp-389 :where(.prose) .bg-tag{display:flex;align-items:center;gap:0;margin:4px 0 16px}
.v-artd .sp-389 :where(.prose) .tg-p{position:relative;flex:none;padding:18px 26px 18px 40px;background:var(--yellow);color:var(--navy);font-size:17px;font-weight:800;clip-path:polygon(18px 0,100% 0,100% 100%,18px 100%,0 50%)}
.v-artd .sp-389 :where(.prose) .tg-p::before{content:"";position:absolute;left:20px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:#fff}
.v-artd .sp-389 :where(.prose) .bg-tag ul{display:flex;flex-wrap:wrap;gap:8px;padding-left:26px!important;position:relative}
.v-artd .sp-389 :where(.prose) .bg-tag ul::before{content:"";position:absolute;left:0;top:50%;width:22px;border-top:2px dashed var(--ink)}
.v-artd .sp-389 :where(.prose) .bg-tag li{padding:8px 14px;border-radius:8px;border:1.5px solid var(--ink);font-size:15px;font-weight:700;color:var(--ink)}

/* 승인 사슬 */
.v-artd .sp-389 :where(.prose) .bg-chain{display:flex;gap:0;margin:4px 0 16px;counter-reset:ch}
.v-artd .sp-389 :where(.prose) .bg-chain li{counter-increment:ch;flex:1;position:relative;padding:16px 14px 16px 44px;border:2px solid var(--ink);border-radius:999px;font-size:15px;font-weight:800;color:var(--ink);background:#fff}
.v-artd .sp-389 :where(.prose) .bg-chain li+li{margin-left:-14px}
.v-artd .sp-389 :where(.prose) .bg-chain li::before{content:counter(ch);position:absolute;left:14px;top:50%;margin-top:-11px;width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px;display:grid;place-items:center}
.v-artd .sp-389 :where(.prose) .bg-chain li:last-child{background:var(--navy);color:#fff}
.v-artd .sp-389 :where(.prose) .bg-chain li:last-child::before{background:var(--yellow);color:var(--navy)}

/* 진행 방식: 계약 조건 세 칸 */
.v-artd .sp-389 :where(.prose) .bg-we{margin:56px 0 12px;padding:26px 28px;border-radius:20px;background:var(--navy);color:#fff}
.v-artd .sp-389 :where(.prose) .we-k{margin:0 0 14px;font-size:13px;font-weight:800;color:#9fb3ff}
.v-artd .sp-389 :where(.prose) .we-g{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px;margin-bottom:18px}
.v-artd .sp-389 :where(.prose) .we-g div{padding:16px;border-radius:12px;background:rgba(255,255,255,.08)}
.v-artd .sp-389 :where(.prose) .we-g small{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:#aab3d6}
.v-artd .sp-389 :where(.prose) .we-g b{display:block;font-size:17px;color:#fff}
.v-artd .sp-389 :where(.prose) .we-g span{display:block;margin-top:6px;font-size:13.5px;color:#cfd5ee}
.v-artd .sp-389 :where(.prose) .we-btn{display:inline-flex;padding:13px 24px;border-radius:999px;background:var(--yellow);color:var(--navy)!important;font-weight:800;text-decoration:none!important}
.v-artd .sp-389 :where(.prose) .we-btn:hover{background:#fff}

.v-artd .sp-389 :where(.prose) .bg-rel{margin:36px 0 10px!important;padding:16px 0 0!important;border-top:1px solid var(--line)}
.v-artd .sp-389 :where(.prose) .bg-rel li{padding:6px 0}
.v-artd .sp-389 :where(.prose) .bg-rel a{font-weight:700;text-decoration:none}
.v-artd .sp-389 :where(.prose) .bg-rel a::before{content:"→ ";color:var(--sub)}

@media (max-width:720px){
  .v-artd .sp-389 :where(.prose) .bg-lead{font-size:18px}
  .v-artd .sp-389 .prose h2{font-size:23px}
  .v-artd .sp-389 :where(.prose) .bg-s{padding-top:46px}
  .v-artd .sp-389 :where(.prose) .bg-valve{grid-template-columns:1fr;gap:10px}
  .v-artd .sp-389 :where(.prose) .vv-c{position:static;margin:6px auto 0;width:auto;height:auto;padding:12px 20px;border-radius:999px;box-shadow:none;order:-1}
  .v-artd .sp-389 :where(.prose) .bg-valve{display:flex;flex-direction:column}
  .v-artd .sp-389 :where(.prose) .ev-row{grid-template-columns:1fr 1fr}
  .v-artd .sp-389 :where(.prose) .bg-rsv{grid-template-columns:1fr}
  .v-artd .sp-389 :where(.prose) .bg-cyc{grid-template-columns:1fr;justify-items:start}
  .v-artd .sp-389 :where(.prose) .bg-chart{padding:10px}
  .v-artd .sp-389 :where(.prose) .bg-doors{grid-template-columns:1fr}
  .v-artd .sp-389 :where(.prose) .bg-ripple{height:220px}
  .v-artd .sp-389 :where(.prose) .bg-ripple span:nth-child(2){left:28%;top:16%}
  .v-artd .sp-389 :where(.prose) .bg-ripple span:nth-child(3){left:74%;top:30%}
  .v-artd .sp-389 :where(.prose) .bg-sort span{font-size:14px;padding:12px 6px}
  .v-artd .sp-389 :where(.prose) .bg-tag{flex-direction:column;align-items:flex-start;gap:12px}
  .v-artd .sp-389 :where(.prose) .bg-tag ul{padding-left:0!important}
  .v-artd .sp-389 :where(.prose) .bg-tag ul::before{display:none}
  .v-artd .sp-389 :where(.prose) .bg-chain{flex-direction:column;gap:8px}
  .v-artd .sp-389 :where(.prose) .bg-chain li+li{margin-left:0}
  .v-artd .sp-389 :where(.prose) .bg-we{padding:22px 18px}
  .v-artd .sp-389 :where(.prose) .we-g{grid-template-columns:1fr}
}
