/* Workflow & automation module (WP-C). */

/* flow diagram (inline SVG from App\Services\Automation\FlowDiagram) */
.au-flowwrap { overflow-x: auto; padding: 4px 0; text-align: center; }
.au-flow { font-family: var(--fb); height: auto; }
.au-flow .au-box rect { fill: #fff; stroke: #c6d5e3; stroke-width: 1; }
.au-flow .au-box rect.bar { stroke: none; fill: var(--brand-primary, #1a7fe0); }
.au-flow .au-box .t { font-size: 12.5px; font-weight: 700; fill: #0b2341; }
.au-flow .au-box .s { font-size: 11px; fill: #5f7184; }
.au-flow .au-box .badge { font-size: 9.5px; font-weight: 700; fill: #7048c8; text-transform: uppercase; letter-spacing: .04em; }
.au-flow .k-trig rect:not(.bar) { fill: var(--brand-navy, #061a36); stroke: var(--brand-navy, #061a36); } .au-flow .k-trig .t, .au-flow .k-trig .s { fill: #fff; } .au-flow .k-trig rect.bar { fill: #2bb3d9; }
.au-flow .k-cond rect:not(.bar) { fill: #fff8e6; stroke: #f0d58f; } .au-flow .k-cond rect.bar { fill: #d99a06; }
.au-flow .k-msg rect.bar { fill: #2bb3d9; } .au-flow .k-doc rect.bar { fill: #7048c8; } .au-flow .k-ext rect.bar { fill: #5b6b7f; }
.au-flow .k-wait rect:not(.bar) { fill: #f4f0fc; stroke: #d8cbf2; } .au-flow .k-wait rect.bar { fill: #7048c8; }
.au-flow .k-loop rect:not(.bar) { fill: #eef6ff; stroke: #b9d6f5; } .au-flow .k-loop rect.bar { fill: var(--blue2, #0b78e8); }
.au-flow .k-comp rect.bar { fill: #12a079; }
.au-flow .k-end rect:not(.bar) { fill: #e1f6ec; stroke: #b9dfce; } .au-flow .k-end rect.bar { fill: #12a079; }
.au-flow .k-failh rect:not(.bar) { fill: #fbe2e6; stroke: #ebbcc5; } .au-flow .k-failh rect.bar { fill: #d6334b; }
.au-flow .s-ok rect:not(.bar) { stroke: #12a079; stroke-width: 2; } .au-flow .s-bad rect:not(.bar) { stroke: #d6334b; stroke-width: 2; fill: #fff5f6; }
.au-flow .au-edge { stroke: #8fa6bd; stroke-width: 1.4; }
.au-flow .au-loop { stroke: var(--blue2, #0b78e8); stroke-width: 1.2; stroke-dasharray: 4 3; fill: none; }
.au-flow .au-arrhead { fill: #8fa6bd; }
.au-flow .au-lab { font-size: 10.5px; font-weight: 700; fill: #3d5166; }

/* builders */
.au-builder { display: grid; gap: 8px; }
.au-cond { border: 1px solid var(--line2); border-radius: 5px; padding: 8px 10px; background: var(--panel2); display: grid; gap: 8px; }
.au-cond.nested { background: #fff; }
.au-cond-head { display: flex; gap: 8px; align-items: center; font-weight: 700; color: var(--text2); flex-wrap: wrap; }
.au-cond-head select { width: auto; }
.au-cond-rows { display: grid; gap: 6px; }
.au-cond-row { display: grid; grid-template-columns: minmax(140px, 1.4fr) minmax(110px, .9fr) minmax(110px, 1.2fr) auto; gap: 6px; align-items: center; }
.au-cond-grow { display: grid; grid-template-columns: 1fr auto; gap: 6px; align-items: start; }
.au-cond-add, .au-steps-add { display: flex; gap: 6px; flex-wrap: wrap; }
.au-none { margin: 0; font-size: 12px; }
.au-x { color: var(--badFg); }
.au-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.au-steps.nested { gap: 8px; }
.au-step { border: 1px solid var(--line); border-left: 4px solid var(--brand-primary, #1a7fe0); border-radius: 5px; background: #fff; }
.au-step.g-notify { border-left-color: #2bb3d9; } .au-step.g-flow { border-left-color: #7048c8; } .au-step.g-documentsapprovals { border-left-color: #a07b35; } .au-step.g-outsideservices { border-left-color: #5b6b7f; }
.au-step-head { display: flex; gap: 8px; align-items: center; padding: 7px 9px; background: var(--panel2); border-bottom: 1px solid var(--line2); border-radius: 5px 5px 0 0; }
.au-step-head .n, .au-rule-head .n { display: inline-grid; place-items: center; min-width: 22px; height: 22px; border-radius: 11px; background: var(--brand-navy, #061a36); color: #fff; font-weight: 700; font-size: 11.5px; }
.au-step-head select { flex: 1; min-width: 0; max-width: 340px; }
.au-step-tools { margin-left: auto; display: inline-flex; gap: 4px; }
.au-step-body { padding: 8px 10px 10px; display: grid; gap: 8px; }
.au-hint { margin: 0; color: var(--muted); font-size: 12px; }
.au-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px 12px; }
.au-field.wide { grid-column: 1 / -1; }
.au-field.chk { align-self: end; }
.au-nest { border-left: 2px dashed #b9cde0; padding-left: 10px; display: grid; gap: 6px; }
.au-nest-label { font-weight: 700; font-size: 12px; color: var(--text2); text-transform: uppercase; letter-spacing: .03em; }
.au-adv summary { cursor: pointer; font-weight: 700; color: var(--text2); font-size: 12px; }
.au-adv[open] { display: grid; gap: 8px; }
.au-tip { margin: 8px 0 0; }
.au-savebar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 4px 0 10px; }
.au-outline { white-space: pre-wrap; font: 12px/1.55 Consolas, 'Courier New', monospace; margin: 0; color: var(--text2); max-height: 460px; overflow: auto; }
.au-help { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 12.5px; }
.au-code { font: 12px/1.45 Consolas, 'Courier New', monospace; width: 100%; box-sizing: border-box; }
.au-badjson { border-color: #d6334b !important; background: #fff5f6 !important; }
.au-jsonbox > summary { list-style: none; cursor: pointer; }
.au-jsonbox > summary::-webkit-details-marker { display: none; }

/* rule editor */
.au-rules { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 10px; }
.au-rule { border: 1px solid var(--line); border-radius: 5px; background: #fff; padding: 8px 10px; display: grid; gap: 8px; }
.au-rule-head { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.au-rule-head > input { flex: 1 1 220px; min-width: 0; }
.au-inl { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; color: var(--text2); font-weight: 700; }
.au-inl.wide { flex: 1 1 240px; }
.au-inl.wide textarea { flex: 1; min-height: 32px; font: 12px Consolas, monospace; }
.au-pts { width: 80px; }

/* lists, details and states */
.au-bad { color: var(--badFg); font-weight: 700; }
.au-err { color: var(--badFg); max-width: 340px; overflow: hidden; text-overflow: ellipsis; }
.au-chk { width: 28px; }
.au-break { word-break: break-all; display: block; white-space: normal !important; }
.ct-alert > div:has(.au-break) { min-width: 0; }
.au-desc { margin: 10px 0 0; color: var(--text2); }
.au-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.au-actions form { display: inline; }
.au-vacts form { display: inline; }
.au-pop { position: relative; display: inline-block; }
.au-pop > summary { list-style: none; cursor: pointer; }
.au-pop > summary::-webkit-details-marker { display: none; }
.au-pop[open] > form { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; width: min(320px, 82vw); background: #fff; border: 1px solid var(--line); border-radius: 5px; padding: 12px; box-shadow: 0 10px 30px rgba(6, 26, 54, .18); text-align: left; }
.au-pop.right[open] > form { left: auto; right: 0; }
.au-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.au-checks li.ok i { color: #12a079; } .au-checks li.bad i { color: #d6334b; }
.au-okc { color: #12a079; } .au-badc { color: #d6334b; }
.au-testtbl tr.au-child td { background: #fafcfe; font-size: 12px; }
.au-steplog { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.au-steplog li { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line2); align-items: start; }
.au-steplog li:last-child { border-bottom: 0; }
.au-steplog .dot { width: 26px; height: 26px; border-radius: 13px; display: grid; place-items: center; color: #fff; font-size: 12px; background: #12a079; }
.au-steplog li.bad .dot { background: #d6334b; } .au-steplog li.wait .dot { background: #d99a06; } .au-steplog li.info .dot { background: #5b6b7f; } .au-steplog li.next .dot { background: #fff; color: #8fa6bd; border: 2px dashed #b9cde0; }
.au-steplog b { display: block; }
.au-steplog small { color: var(--muted); white-space: nowrap; }
.au-tplgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; }
.au-tpl { border: 1px solid var(--line); border-radius: 6px; background: #fff; padding: 14px; display: grid; gap: 8px; align-content: start; }
.au-tpl h3 { margin: 0; font-size: 14px; display: flex; gap: 8px; align-items: center; }
.au-tpl h3 i { color: var(--blue2, #0b78e8); font-size: 18px; }
.au-tpl p { margin: 0; color: var(--text2); font-size: 12.5px; }
.au-tpl .meta { display: flex; gap: 6px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); }
.au-tpl .foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.au-tpl .au-flowwrap { max-height: 220px; overflow: hidden; border: 1px solid var(--line2); border-radius: 4px; background: var(--panel2); }
.au-inbox { list-style: none; margin: 0; padding: 0; }
.au-inbox li { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--line2); align-items: start; }
.au-inbox li.unread { background: #f3f8ff; }
.au-inbox li .ic { width: 30px; height: 30px; border-radius: 15px; display: grid; place-items: center; background: #e4f0ff; color: #0f5aa6; }
.au-inbox li.l-bad .ic { background: #fbe2e6; color: #a3283d; } .au-inbox li.l-warn .ic { background: #fff1cc; color: #8b620d; } .au-inbox li.l-ok .ic { background: #e1f6ec; color: #0b7a50; }
.au-inbox li b { display: block; }
.au-inbox li p { margin: 2px 0 0; color: var(--text2); font-size: 12.5px; }
.au-inbox li small { color: var(--muted); white-space: nowrap; }
.au-weekgrid { display: grid; gap: 6px; }
.au-weekrow { display: grid; grid-template-columns: 100px repeat(4, minmax(70px, 1fr)) auto; gap: 6px; align-items: center; }
.au-weekbar { position: relative; height: 18px; background: #eef3f8; border-radius: 3px; overflow: hidden; }
.au-weekbar span { position: absolute; top: 0; bottom: 0; background: linear-gradient(90deg, var(--brand-primary, #1a7fe0), #2bb3d9); border-radius: 2px; }
.au-weekbar span.hol { background: repeating-linear-gradient(45deg, #fbe2e6, #fbe2e6 4px, #f6ccd4 4px, #f6ccd4 8px); left: 0; right: 0; }
.au-weekscale { display: grid; grid-template-columns: 100px 1fr; gap: 6px; font-size: 10.5px; color: var(--muted); }
.au-weekscale div { display: flex; justify-content: space-between; }
.au-calc li { display: grid; grid-template-columns: 110px 1fr auto; gap: 8px; padding: 5px 0; border-bottom: 1px dashed var(--line2); font-size: 12.5px; }
.au-calc { list-style: none; margin: 0; padding: 0; }
.au-calc li.closed { color: var(--muted); }
.au-pstep { border: 1px solid var(--line); border-radius: 5px; padding: 10px; display: grid; gap: 8px; background: #fff; }
.au-pstep-head { display: flex; align-items: center; gap: 8px; }
.au-pstep-head .n { display: inline-grid; place-items: center; min-width: 22px; height: 22px; border-radius: 11px; background: #a07b35; color: #fff; font-weight: 700; font-size: 11.5px; }
.au-pgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px 12px; }
.au-chain { display: flex; gap: 0; flex-wrap: wrap; align-items: stretch; }
.au-chain .st { flex: 1 1 180px; border: 1px solid var(--line); border-radius: 5px; padding: 10px 12px; background: #fff; display: grid; gap: 4px; position: relative; margin: 0 18px 10px 0; }
.au-chain .st::after { content: '\F285'; font-family: 'bootstrap-icons'; position: absolute; right: -16px; top: 40%; color: #8fa6bd; }
.au-chain .st:last-child::after { content: none; }
.au-chain .st.approved { border-color: #b9dfce; background: #f4fbf7; } .au-chain .st.rejected { border-color: #ebbcc5; background: #fff7f8; } .au-chain .st.pending { border-color: #f0d58f; background: #fffaf0; }
.au-chain .st b { font-size: 13px; }
.au-chain .st small { color: var(--muted); }
.au-replay { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.au-kv { display: grid; grid-template-columns: max-content 1fr; gap: 4px 12px; font-size: 12.5px; margin: 0; }
.au-kv dt { color: var(--muted); }
.au-kv dd { margin: 0; word-break: break-word; }
.au-json { white-space: pre-wrap; font: 11.5px/1.45 Consolas, 'Courier New', monospace; background: var(--panel2); border: 1px solid var(--line2); border-radius: 4px; padding: 8px; margin: 0; max-height: 360px; overflow: auto; }
.au-hit td { background: #f4fbf7; }
.au-miss td { color: var(--muted); }
.au-tabsbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; justify-content: space-between; }

@media (max-width: 720px) {
    .au-cond-row { grid-template-columns: 1fr 1fr; }
    .au-cond-row .au-f { grid-column: 1 / -1; }
    .au-step-head { flex-wrap: wrap; }
    .au-step-head select { max-width: none; flex-basis: calc(100% - 40px); }
    .au-weekrow { grid-template-columns: 70px repeat(2, 1fr); }
    .au-weekrow .au-weekbar { grid-column: 1 / -1; }
    .au-weekscale { grid-template-columns: 1fr; }
    .au-steplog li, .au-inbox li { grid-template-columns: 30px 1fr; }
    .au-steplog li small, .au-inbox li small { grid-column: 2; }
    .au-calc li { grid-template-columns: 90px 1fr; }
    .au-chain .st { margin-right: 0; flex-basis: 100%; }
    .au-chain .st::after { content: none; }
}
@media print { .au-actions, .au-pop { display: none !important; } }
