/* 319 역할별 화면 이동과 중단, 외부 링크 진입 = 화면 흐름도 도면(2026-10-16 글마다 다른 레이아웃).
   처음은 점 모눈 위 노드와 연결선 이름(예약 다섯 화면), 예외는 작은 흐름 기호 셋, 역할은 두 줄 레인과 같은 업무 번호 연결,
   이동 조건은 화면 창과 선 범례, 외부 진입은 입구 넷 > 확인 관문 > 두 결과, 검토 기준은 계기 셋,
   요소 연결은 행동 하나가 조작 넷으로 갈라짐, 시험은 상태 점검표, 승인과 반려는 상태 이동 그림 */
.v-artd .sp-319 .prose{font-size:17px}
.v-artd .sp-319 :where(.prose) .fl-lead{font-size:20px;line-height:1.7;color:var(--ink);margin:0 0 24px}
.v-artd .sp-319 :where(.prose) .fl-lead b{box-shadow:inset 0 -.45em 0 var(--blue2)}
.v-artd .sp-319 .prose h2{margin:0 0 18px;padding:0;border:0;font-size:27px;letter-spacing:-.8px;display:block;min-height:0}
.v-artd .sp-319 .prose h2::before,.v-artd .sp-319 .prose h2::after{content:none}
.v-artd .sp-319 :where(.prose) .fl-s{padding:60px 0 4px}
.v-artd .sp-319 :where(.prose) .fl-s>p{margin:0 0 16px}
.v-artd .sp-319 .prose ul,.v-artd .sp-319 .prose ol{margin:0;padding:0;list-style:none}
.v-artd .sp-319 .prose li{margin:0}
.v-artd .sp-319 .prose li::before{content:none}

/* 도면: 점 모눈 + 노드 사슬 */
.v-artd .sp-319 :where(.prose) .fl-canvas{margin:0 0 10px;padding:26px 24px 20px;border-radius:18px;border:1px solid var(--line);background:#fbfcff radial-gradient(#cdd4e6 1px,transparent 1.2px) 0 0/18px 18px}
.v-artd .sp-319 :where(.prose) .fl-scn{margin:0 0 22px;font-size:15.5px;color:var(--ink)}
.v-artd .sp-319 :where(.prose) .fl-scn b{display:inline-block;margin-right:10px;padding:3px 10px;border-radius:6px;background:var(--navy);color:#fff;font-size:13px}
.v-artd .sp-319 :where(.prose) .fl-chain{display:flex;align-items:center;gap:0}
.v-artd .sp-319 :where(.prose) .nd{flex:1 1 0;min-width:0;position:relative;padding:28px 10px 12px;border-radius:12px;background:#fff;border:1.5px solid #c9cfdd;text-align:center}
.v-artd .sp-319 :where(.prose) .nd .n{position:absolute;left:50%;top:-13px;margin-left:-13px;width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;font-weight:800;display:grid;place-items:center}
.v-artd .sp-319 :where(.prose) .nd b{display:block;font-size:15px;line-height:1.3;color:var(--ink)}
.v-artd .sp-319 :where(.prose) .nd small{display:block;margin-top:4px;font-size:12.5px;line-height:1.35;color:var(--sub)}
.v-artd .sp-319 :where(.prose) .nd-s{border-color:var(--ink)}
.v-artd .sp-319 :where(.prose) .nd-e{border:2px solid var(--blue);background:var(--blue2)}
.v-artd .sp-319 :where(.prose) .nd-e .n{background:var(--blue)}
.v-artd .sp-319 :where(.prose) .eg{flex:0 0 58px;position:relative;padding:0 0 18px;text-align:center;font-size:11.5px;font-weight:700;color:#1d3fc4;line-height:1.2;word-break:keep-all}
.v-artd .sp-319 :where(.prose) .eg::after{content:"";position:absolute;left:4px;right:4px;bottom:6px;height:2px;background:var(--blue)}
.v-artd .sp-319 :where(.prose) .eg::before{content:"";position:absolute;right:2px;bottom:2px;border:5px solid transparent;border-left:7px solid var(--blue);border-right:0}
.v-artd .sp-319 :where(.prose) .fl-canvas figcaption{margin:20px 0 0;padding-top:14px;border-top:1px dashed #c9cfdd;font-size:15px;line-height:1.65;color:#4a5060;text-align:left}

/* 예외 기호 셋 */
.v-artd .sp-319 :where(.prose) .fl-ex{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0 20px}
.v-artd .sp-319 :where(.prose) .ex{padding:18px 18px 16px;border-radius:14px;background:var(--soft)}
.v-artd .sp-319 :where(.prose) .ex svg{display:block;width:64px;height:42px;margin-bottom:10px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.v-artd .sp-319 :where(.prose) .ex-back svg path{stroke:var(--blue)}
.v-artd .sp-319 :where(.prose) .ex-pause svg rect+path~rect{fill:var(--yellow);stroke:none}
.v-artd .sp-319 :where(.prose) .ex-fail svg path:nth-of-type(2){stroke:#c4282d}
.v-artd .sp-319 :where(.prose) .ex-fail svg path:nth-of-type(3){stroke:#c4282d}
.v-artd .sp-319 :where(.prose) .ex b{display:block;font-size:16.5px;color:var(--ink);margin-bottom:4px}
.v-artd .sp-319 :where(.prose) .ex p{margin:0;font-size:15px;line-height:1.6;color:#4a5060}

/* 역할 두 줄 레인 */
.v-artd .sp-319 :where(.prose) .fl-lanes{position:relative;margin:22px 0 22px;border-radius:14px;border:1px solid var(--line);overflow:hidden}
.v-artd .sp-319 :where(.prose) .ln{display:grid;grid-template-columns:90px 1fr;align-items:center;min-height:64px}
.v-artd .sp-319 :where(.prose) .ln-n{align-self:stretch;display:grid;place-items:center;font-size:14px;font-weight:800;color:#fff}
.v-artd .sp-319 :where(.prose) .ln-c .ln-n{background:var(--blue)}
.v-artd .sp-319 :where(.prose) .ln-a .ln-n{background:var(--navy)}
.v-artd .sp-319 :where(.prose) .ln-c{background:#f6f8ff}
.v-artd .sp-319 :where(.prose) .ln-a{background:#f6f7fa}
.v-artd .sp-319 :where(.prose) .ev{justify-self:start;margin-left:34%;padding:10px 16px;border-radius:10px;background:#fff;border:1.5px solid var(--blue);font-size:15px;font-weight:800;color:var(--ink)}
.v-artd .sp-319 :where(.prose) .ln-a .ev{border-color:var(--navy)}
.v-artd .sp-319 :where(.prose) .ln-link{position:relative;height:34px;border-top:1px dashed #c9cfdd;border-bottom:1px dashed #c9cfdd;background:#fff}
.v-artd .sp-319 :where(.prose) .ln-link::before{content:"";position:absolute;left:calc(90px + (100% - 90px)*.34 + 50px);top:-14px;bottom:-14px;border-left:2px dashed var(--blue)}
.v-artd .sp-319 :where(.prose) .ln-link span{position:absolute;left:calc(90px + (100% - 90px)*.34 + 62px);top:50%;transform:translateY(-50%);font-size:12.5px;font-weight:800;color:#1d3fc4}
.v-artd .sp-319 :where(.prose) .ln-rec{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:#fff}
.v-artd .sp-319 :where(.prose) .ln-rec span{padding:5px 12px;border-radius:999px;border:1.5px solid #c9cfdd;font-size:13.5px;font-weight:700;color:#4a5060}
.v-artd .sp-319 :where(.prose) .ln-rec small{margin-left:auto;font-size:13px;font-weight:700;color:var(--sub)}

/* 화면 창 + 선 범례 */
.v-artd .sp-319 :where(.prose) .fl-screen{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center;margin:22px 0 20px}
.v-artd .sp-319 :where(.prose) .sc-win{position:relative;padding:20px 20px 22px;border-radius:16px;border:1px solid var(--line);background:#fff;box-shadow:0 24px 40px -32px rgba(27,31,58,.55)}
.v-artd .sp-319 :where(.prose) .sc-t{margin:0 0 14px!important;font-size:15px;font-weight:800;color:var(--ink)}
.v-artd .sp-319 :where(.prose) .sc-win i{display:block;height:30px;margin:0 0 8px;border-radius:8px;border:1.5px solid #d5d9e4}
.v-artd .sp-319 :where(.prose) .sc-win i.s{width:60%}
.v-artd .sp-319 :where(.prose) .sc-btn{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.v-artd .sp-319 :where(.prose) .sc-btn span{padding:7px 12px;border-radius:8px;background:var(--soft);font-size:13.5px;font-weight:700;color:#4a5060}
.v-artd .sp-319 :where(.prose) .sc-btn .b1{background:var(--blue);color:#fff}
.v-artd .sp-319 :where(.prose) .sc-dlg{position:absolute;right:-14px;top:38px;width:170px;padding:12px 14px;border-radius:12px;background:var(--navy);color:#fff;font-size:13.5px;box-shadow:0 14px 24px -14px rgba(27,31,58,.7)}
.v-artd .sp-319 :where(.prose) .sc-dlg b{display:block;margin-bottom:8px;color:#fff}
.v-artd .sp-319 :where(.prose) .sc-dlg span{display:inline-block;padding:4px 10px;border-radius:6px;background:#fff;color:var(--navy);font-weight:800;font-size:12.5px}
.v-artd .sp-319 :where(.prose) .sc-legend{padding:20px 22px;border-radius:14px;border:1px dashed #b7bdcc}
.v-artd .sp-319 :where(.prose) .sc-legend p{margin:0}
.v-artd .sp-319 :where(.prose) .lg-h{font-size:14px;font-weight:800;color:var(--sub);margin-bottom:12px!important}
.v-artd .sp-319 :where(.prose) .lg-r{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:15.5px;font-weight:700;color:var(--ink)}
.v-artd .sp-319 :where(.prose) .lg-r small{margin-left:auto;font-size:13px;font-weight:600;color:var(--sub)}
.v-artd .sp-319 :where(.prose) .ln-solid,.v-artd .sp-319 :where(.prose) .ln-dash{flex:none;width:46px;height:0;border-top:2.5px solid var(--blue)}
.v-artd .sp-319 :where(.prose) .ln-dash{border-top-style:dashed}
.v-artd .sp-319 :where(.prose) .lg-n{margin-top:10px!important;font-size:14px;color:#4a5060}

/* 외부 진입: 입구 넷 > 관문 > 결과 둘 */
.v-artd .sp-319 :where(.prose) .fl-entry{display:grid;grid-template-columns:1fr auto 1.3fr;gap:18px;align-items:center;margin:4px 0 22px;padding:22px;border-radius:18px;background:var(--navy)}
.v-artd .sp-319 :where(.prose) .en-src{display:grid;gap:6px}
.v-artd .sp-319 :where(.prose) .en-src li{position:relative;padding:8px 12px;border-radius:8px;background:rgba(255,255,255,.1);color:#fff;font-size:14.5px;font-weight:700}
.v-artd .sp-319 :where(.prose) .en-src li::after{content:"";position:absolute;right:-18px;top:50%;width:18px;border-top:1.5px solid rgba(255,255,255,.4)}
.v-artd .sp-319 :where(.prose) .en-gate{position:relative;padding:18px 12px;width:110px;border-radius:50%;aspect-ratio:1;display:grid;place-items:center;text-align:center;background:var(--yellow);color:var(--navy);font-size:14px;font-weight:800;line-height:1.35}
.v-artd .sp-319 :where(.prose) .en-out{display:grid;gap:8px}
.v-artd .sp-319 :where(.prose) .en-out span{padding:12px 14px;border-radius:10px;font-size:15px;font-weight:800}
.v-artd .sp-319 :where(.prose) .o-ok{background:#fff;color:var(--ink)}
.v-artd .sp-319 :where(.prose) .o-ok small{display:block;margin-top:2px;font-size:12.5px;font-weight:600;color:var(--sub)}
.v-artd .sp-319 :where(.prose) .o-no{border:1.5px dashed rgba(255,255,255,.55);color:#fff}

.v-artd .sp-319 :where(.prose) .en-gate::after{content:"";position:absolute;left:100%;top:50%;width:18px;border-top:1.5px solid rgba(255,255,255,.4)}
/* 검토 기준 계기 셋 */
.v-artd .sp-319 :where(.prose) .fl-meter{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 20px}
.v-artd .sp-319 :where(.prose) .fl-meter li{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);font-size:17px;font-weight:800;color:var(--ink)}
.v-artd .sp-319 :where(.prose) .mt-ic{flex:none;width:40px;height:40px;border-radius:50%;background:var(--soft) center/22px no-repeat}
.v-artd .sp-319 :where(.prose) .mt-time{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232e5bff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='13' r='8'/%3E%3Cpath d='M12 9v4l3 2M10 2h4'/%3E%3C/svg%3E")}
.v-artd .sp-319 :where(.prose) .mt-err{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c4282d' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9 9l6 6M15 9l-6 6'/%3E%3C/svg%3E")}
.v-artd .sp-319 :where(.prose) .mt-stop{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b1f3a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 21V4M5 4h11l-2 4 2 4H5'/%3E%3C/svg%3E")}

/* 행동 하나 > 조작 넷 */
.v-artd .sp-319 :where(.prose) .fl-map{display:grid;grid-template-columns:150px 1fr;align-items:center;margin:20px 0 20px}
.v-artd .sp-319 :where(.prose) .mp-a{position:relative;padding:16px 12px;border-radius:12px;background:var(--ink);color:#fff;text-align:center;font-weight:800;font-size:15px}
.v-artd .sp-319 :where(.prose) .fl-map ul{position:relative;display:grid;gap:8px;padding-left:44px}
.v-artd .sp-319 :where(.prose) .fl-map ul::before{content:"";position:absolute;left:0;top:50%;width:22px;border-top:2px solid var(--blue)}
.v-artd .sp-319 :where(.prose) .fl-map ul::after{content:"";position:absolute;left:22px;top:20px;bottom:20px;border-left:2px solid var(--blue)}
.v-artd .sp-319 :where(.prose) .fl-map li{position:relative;padding:9px 14px;border-radius:8px;border:1.5px solid var(--blue);font-size:15px;font-weight:700;color:var(--ink);width:max-content;min-width:140px}
.v-artd .sp-319 :where(.prose) .fl-map li::after{content:"";position:absolute;left:-22px;top:50%;width:22px;border-top:2px solid var(--blue)}

/* 시험 점검표 */
.v-artd .sp-319 :where(.prose) .fl-test{margin:22px 0 20px;overflow-x:auto}
.v-artd .sp-319 :where(.prose) .fl-test table{margin:0;min-width:420px;font-size:15px;border-radius:12px;border:1px solid var(--line)}
.v-artd .sp-319 :where(.prose) .fl-test th{background:var(--soft);font-size:14px}
.v-artd .sp-319 :where(.prose) .fl-test td{height:48px}
.v-artd .sp-319 :where(.prose) .fl-test td+td,.v-artd .sp-319 :where(.prose) .fl-test th+th{text-align:center;width:24%}
.v-artd .sp-319 :where(.prose) .bx{display:inline-block;width:20px;height:20px;border-radius:50%;border:2px solid #b7bdcc;vertical-align:middle}

/* 승인과 반려 상태 이동(SVG) */
.v-artd .sp-319 :where(.prose) .fl-state{margin:24px 0 22px;padding:18px 20px;border-radius:18px;background:#fbfcff radial-gradient(#cdd4e6 1px,transparent 1.2px) 0 0/18px 18px;border:1px solid var(--line)}
.v-artd .sp-319 :where(.prose) .fl-state svg{display:block;width:100%;height:auto}
.v-artd .sp-319 :where(.prose) .fl-state .e{fill:none;stroke:#1b1f3a;stroke-width:2}
.v-artd .sp-319 :where(.prose) .fl-state .er{stroke:#c4282d}
.v-artd .sp-319 :where(.prose) .fl-state .eg{stroke:#9aa1b2;stroke-dasharray:6 5}
.v-artd .sp-319 :where(.prose) .fl-state .ed{stroke-dasharray:6 5}
.v-artd .sp-319 :where(.prose) .fl-state .n{fill:#fff;stroke:#1b1f3a;stroke-width:2}
.v-artd .sp-319 :where(.prose) .fl-state .ok{fill:#2e5bff;stroke:#2e5bff}
.v-artd .sp-319 :where(.prose) .fl-state .no{stroke:#c4282d}
.v-artd .sp-319 :where(.prose) .fl-state .wd{stroke:#9aa1b2}
.v-artd .sp-319 :where(.prose) .fl-state .re{stroke-dasharray:6 5}
.v-artd .sp-319 :where(.prose) .fl-state text{text-anchor:middle;font-size:17px;font-weight:800;fill:#141827;font-family:inherit}
.v-artd .sp-319 :where(.prose) .fl-state text.w{fill:#fff}
.v-artd .sp-319 :where(.prose) .fl-state text.r{fill:#c4282d}
.v-artd .sp-319 :where(.prose) .fl-state text.g{fill:#5b6475}
.v-artd .sp-319 :where(.prose) .fl-state text.s{font-size:12.5px;font-weight:600;fill:#5b6475}

/* 진행 방식: 같은 노드 사슬 문법(업무흐름도 > 기획 문서 셋) */
.v-artd .sp-319 :where(.prose) .fl-we{margin:56px 0 12px;padding:28px;border-radius:20px;background:var(--navy);color:#fff}
.v-artd .sp-319 :where(.prose) .we-k{margin:0 0 16px;font-size:13px;font-weight:800;color:#9fb3ff}
.v-artd .sp-319 :where(.prose) .we-chain{display:flex;align-items:stretch;gap:28px;margin-bottom:18px!important}
.v-artd .sp-319 :where(.prose) .we-chain li{position:relative;flex:1;display:grid;place-items:center;padding:16px 10px;border-radius:12px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.3);text-align:center;font-size:15px;font-weight:800;line-height:1.35}
.v-artd .sp-319 :where(.prose) .we-chain li+li::before{content:"";position:absolute;left:-26px;top:50%;width:22px;border-top:2px solid #9fb3ff}
.v-artd .sp-319 :where(.prose) .we-chain .w-src{background:var(--yellow);border-color:var(--yellow);color:var(--navy)}
.v-artd .sp-319 :where(.prose) .we-n{margin:0 0 18px;font-size:15.5px;line-height:1.65;color:#dfe4f7}
.v-artd .sp-319 :where(.prose) .we-btn{display:inline-flex;padding:13px 24px;border-radius:999px;background:#fff;color:var(--navy)!important;font-weight:800;text-decoration:none!important}
.v-artd .sp-319 :where(.prose) .we-btn:hover{background:var(--blue2)}

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

@media (max-width:720px){
  .v-artd .sp-319 :where(.prose) .fl-lead{font-size:18px}
  .v-artd .sp-319 .prose h2{font-size:23px}
  .v-artd .sp-319 :where(.prose) .fl-s{padding-top:46px}
  .v-artd .sp-319 :where(.prose) .fl-canvas{padding:20px 16px}
  .v-artd .sp-319 :where(.prose) .fl-chain{flex-direction:column;align-items:stretch}
  .v-artd .sp-319 :where(.prose) .nd{padding:14px 12px 12px 48px;text-align:left}
  .v-artd .sp-319 :where(.prose) .nd .n{left:12px;top:50%;margin:-13px 0 0}
  .v-artd .sp-319 :where(.prose) .eg{flex:none;padding:6px 0 6px 50px;text-align:left}
  .v-artd .sp-319 :where(.prose) .eg::after{left:24px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .v-artd .sp-319 :where(.prose) .eg::before{left:20px;right:auto;bottom:-2px;border:5px solid transparent;border-top:7px solid var(--blue);border-bottom:0}
  .v-artd .sp-319 :where(.prose) .fl-ex{grid-template-columns:1fr}
  .v-artd .sp-319 :where(.prose) .ln{grid-template-columns:70px 1fr}
  .v-artd .sp-319 :where(.prose) .ev{margin-left:16px}
  .v-artd .sp-319 :where(.prose) .ln-link::before{left:110px}
  .v-artd .sp-319 :where(.prose) .ln-link span{left:122px}
  .v-artd .sp-319 :where(.prose) .ln-rec{flex-wrap:wrap}
  .v-artd .sp-319 :where(.prose) .fl-screen{grid-template-columns:1fr}
  .v-artd .sp-319 :where(.prose) .sc-dlg{right:10px;top:auto;bottom:-20px}
  .v-artd .sp-319 :where(.prose) .sc-win{margin-bottom:20px}
  .v-artd .sp-319 :where(.prose) .fl-entry{grid-template-columns:1fr;justify-items:stretch}
  .v-artd .sp-319 :where(.prose) .en-src{grid-template-columns:1fr 1fr}
  .v-artd .sp-319 :where(.prose) .en-src li::after{display:none}
  .v-artd .sp-319 :where(.prose) .en-gate{position:relative;width:auto;aspect-ratio:auto;border-radius:999px;padding:12px}
  .v-artd .sp-319 :where(.prose) .fl-meter{grid-template-columns:1fr}
  .v-artd .sp-319 :where(.prose) .fl-map{grid-template-columns:1fr;gap:10px}
  .v-artd .sp-319 :where(.prose) .fl-map ul{padding-left:24px}
  .v-artd .sp-319 :where(.prose) .fl-map ul::before{display:none}
  .v-artd .sp-319 :where(.prose) .fl-map ul::after{left:4px}
  .v-artd .sp-319 :where(.prose) .fl-map li::after{left:-20px;width:20px}
  .v-artd .sp-319 :where(.prose) .we-chain{flex-direction:column;gap:20px}
  .v-artd .sp-319 :where(.prose) .we-chain li+li::before{left:50%;top:-18px;width:0;height:16px;border-top:0;border-left:2px solid #9fb3ff}
}
