/* ============================================================
   VTCDOCS V13.19.12 — CENTRAL DE PROCESSOS
   ============================================================ */
.processos-screen {
    min-height: 100vh;
    padding: 30px 30px 42px;
    color: var(--text-main);
}
.processos-page {
    width: min(100%, 1680px);
    margin: 0 auto;
}
.processos-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 24px;
}
.processos-header-copy small,
.processos-detail-kicker {
    display: block;
    margin-bottom: 8px;
    color: #5f82df;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.processos-header h1,
.processos-detail-head h1 {
    margin: 0;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.03;
    letter-spacing: -.045em;
}
.processos-header p,
.processos-detail-head p {
    max-width: 760px;
    margin: 8px 0 0;
    color: #8794aa;
    font-size: 13px;
    line-height: 1.55;
}
.processos-counter {
    flex: 0 0 auto;
    padding: 8px 12px;
    border: 1px solid rgba(148,163,184,.14);
    border-radius: 999px;
    background: rgba(255,255,255,.035);
    color: #aeb8ca;
    font-size: 11px;
    font-weight: 750;
}
.processos-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}
.processos-search {
    width: min(100%, 560px);
    position: relative;
}
.processos-search i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #66748e;
    pointer-events: none;
}
.processos-search input {
    width: 100%;
    min-height: 44px;
    padding: 0 15px 0 42px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(148,163,184,.13) !important;
    background: rgba(255,255,255,.035) !important;
    color: #edf2ff !important;
    font: inherit;
}
.processos-search input:focus {
    outline: none;
    border-color: rgba(65,105,225,.62) !important;
    box-shadow: 0 0 0 3px rgba(59,95,210,.12);
}
.processos-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.processos-card {
    min-height: 315px;
    display: flex;
    flex-direction: column;
    padding: 22px;
    border: 1px solid rgba(148,163,184,.11);
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
    box-shadow: 0 18px 44px rgba(0,0,0,.12);
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.processos-card:hover {
    transform: translateY(-2px);
    border-color: rgba(87,120,210,.35);
    background: linear-gradient(145deg, rgba(55,88,170,.11), rgba(255,255,255,.022));
}
.processos-card-top,
.processos-card-meta,
.processos-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.processos-card-area,
.processos-card-version {
    color: #8594ae;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.processos-card-version {
    padding: 5px 8px;
    border-radius: 7px;
    background: rgba(255,255,255,.04);
}
.processos-card-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    margin: 22px 0 17px;
    border: 1px solid rgba(74,112,213,.28);
    border-radius: 13px;
    background: rgba(45,79,170,.16);
    color: #78a0ff;
    font-size: 18px;
}
.processos-card h2 {
    margin: 0;
    color: #f0f4ff;
    font-size: 19px;
    line-height: 1.2;
    letter-spacing: -.025em;
}
.processos-card > p {
    margin: 10px 0 15px;
    color: #8794aa;
    font-size: 12px;
    line-height: 1.58;
}
.processos-card-trilha {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: auto 0 16px;
    color: #a8b5ca;
    font-size: 11px;
}
.processos-card-trilha i { color: #5d7dcc; }
.processos-card-meta {
    padding-top: 14px;
    border-top: 1px solid rgba(148,163,184,.08);
    color: #6f7e98;
    font-size: 10px;
}
.processos-card-meta strong { color: #9eabc0; }
.processos-card-actions { margin-top: 15px; }
.processos-card-open,
.processos-card-doc,
.processos-back,
.processos-doc-btn,
.processos-drawer-doc {
    border: 1px solid rgba(148,163,184,.14);
    background: rgba(255,255,255,.04);
    color: #e5ebf8;
    font: inherit;
    cursor: pointer;
}
.processos-card-open {
    flex: 1;
    min-height: 38px;
    padding: 0 13px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 800;
}
.processos-card-open:hover,
.processos-card-doc:hover,
.processos-back:hover,
.processos-doc-btn:hover,
.processos-drawer-doc:hover { background: rgba(73,105,190,.16); border-color: rgba(82,117,212,.35); }
.processos-card-doc {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    color: #f37b7b;
}
.processos-empty {
    grid-column: 1 / -1;
    min-height: 240px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    border: 1px dashed rgba(148,163,184,.14);
    border-radius: 16px;
    color: #71809a;
}
.processos-empty i { font-size: 22px; }
.processos-empty strong { color: #bac4d6; }
.processos-empty span { font-size: 12px; }
.processos-source-note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 16px;
    color: #66758f;
    font-size: 10px;
    line-height: 1.5;
}
.processos-source-note i { margin-top: 2px; color: #5d7dcc; }

/* detalhe */
.processos-detail[hidden], .processos-catalog[hidden] { display: none !important; }
.processos-detail-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.processos-back,
.processos-doc-btn {
    min-height: 38px;
    padding: 0 13px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 800;
}
.processos-back i,
.processos-doc-btn i { margin-right: 7px; }
.processos-doc-btn { color: #f1a0a0; }
.processos-detail-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 22px;
    margin-bottom: 20px;
}
.processos-detail-head h1 { font-size: clamp(26px, 2.6vw, 38px); }
.processos-control-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
    max-width: 420px;
}
.processos-control-meta span {
    padding: 7px 9px;
    border: 1px solid rgba(148,163,184,.11);
    border-radius: 8px;
    background: rgba(255,255,255,.03);
    color: #8997af;
    font-size: 10px;
    font-weight: 750;
}
.processos-map-shell {
    overflow: hidden;
    border: 1px solid rgba(148,163,184,.1);
    border-radius: 17px;
    background: rgba(7,14,27,.64);
    box-shadow: 0 18px 48px rgba(0,0,0,.16);
}
.processos-map-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(148,163,184,.09);
    background: rgba(255,255,255,.02);
}
.processos-map-label strong {
    display: block;
    margin-bottom: 3px;
    color: #dce5f7;
    font-size: 12px;
}
.processos-map-label span { color: #687790; font-size: 10px; }
.processos-area-filters {
    display: flex;
    align-items: center;
    gap: 6px;
    max-width: 72%;
    overflow-x: auto;
    scrollbar-width: thin;
}
.processos-area-filter {
    flex: 0 0 auto;
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #71809a;
    font: inherit;
    font-size: 10px;
    font-weight: 750;
    cursor: pointer;
}
.processos-area-filter:hover { color: #b8c4d8; background: rgba(255,255,255,.035); }
.processos-area-filter.is-active {
    color: #e9efff;
    border-color: rgba(72,109,205,.38);
    background: rgba(48,81,169,.2);
}
.processos-flow-track {
    width: 100%;
    min-height: 520px;
    display: flex;
    align-items: flex-start;
    gap: 0;
    padding: 30px 28px 38px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(110,128,165,.34) transparent;
}
.processos-flow-unit {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
}
.processos-flow-block {
    flex: 0 0 250px;
    min-width: 250px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 10px;
    transition: min-width .2s ease, flex-basis .2s ease;
}
.processos-flow-block.has-expanded {
    flex-basis: 460px;
    min-width: 460px;
}
.processos-flow-block.is-parallel,
.processos-flow-block.is-decision {
    min-width: 560px;
    flex-basis: 560px;
    padding: 12px;
    border: 1px solid rgba(148,163,184,.09);
    border-radius: 14px;
    background: rgba(255,255,255,.018);
}
.processos-flow-block.is-parallel.has-expanded,
.processos-flow-block.is-decision.has-expanded {
    min-width: 500px;
    flex-basis: 500px;
}
.processos-flow-block.is-decision { border-color: rgba(234,179,8,.13); }
.processos-flow-connector {
    width: 54px;
    flex: 0 0 54px;
    display: flex;
    align-items: center;
    margin-top: 90px;
    color: #4d66a6;
}
.processos-flow-connector span {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, rgba(79,106,174,.25), rgba(79,106,174,.75));
}
.processos-flow-connector i { margin-left: -1px; font-size: 10px; }
.processos-step {
    position: relative;
    width: 100%;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 14px;
    background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.022));
    overflow: hidden;
    transition: opacity .18s ease, transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.processos-step:hover {
    border-color: rgba(75,112,211,.34);
    background: linear-gradient(145deg, rgba(57,89,176,.11), rgba(255,255,255,.025));
}
.processos-step.is-expanded {
    border-color: rgba(76,116,224,.55);
    background: linear-gradient(145deg, rgba(46,76,157,.16), rgba(255,255,255,.025));
    box-shadow: 0 18px 44px rgba(0,0,0,.25), 0 0 0 2px rgba(55,91,190,.06);
}
.processos-step.is-muted { opacity: .25; filter: saturate(.45); }
.processos-step.is-muted:hover { opacity: .62; }
.processos-step.is-highlighted { border-color: rgba(73,113,224,.55); }
.processos-step-toggle {
    width: 100%;
    min-height: 178px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 17px 17px 15px;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    font: inherit;
    cursor: pointer;
}
.processos-step-number {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    height: 24px;
    margin-bottom: 11px;
    padding: 0 7px;
    border: 1px solid rgba(96,133,232,.2);
    border-radius: 7px;
    background: rgba(60,93,184,.12);
    color: #8ba7ef;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
}
.processos-step-kicker {
    margin-bottom: 6px;
    color: #64779e;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.processos-step-toggle > strong {
    color: #edf2ff;
    font-size: 14px;
    line-height: 1.28;
    letter-spacing: -.01em;
}
.processos-step-summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin-top: 8px;
    color: #8795aa;
    font-size: 10px;
    line-height: 1.48;
}
.processos-step-owner {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 11px;
    color: #a6b3c7;
    font-size: 9px;
    font-weight: 750;
}
.processos-step-owner i { color: #6085e8; }
.processos-step-owner.is-neutral { color: #68758d; }
.processos-step-more {
    margin-top: auto;
    padding-top: 12px;
    color: #6d87ca;
    font-size: 9px;
    font-weight: 850;
}
.processos-step-more i { margin-left: 5px; font-size: 8px; }
.processos-step-branch {
    position: absolute;
    z-index: 2;
    top: 12px;
    right: 12px;
    padding: 4px 7px;
    border-radius: 6px;
    font-size: 8px;
    font-weight: 900;
    text-transform: uppercase;
}
.processos-step-branch.is-yes { background: rgba(16,185,129,.13); color: #56d69d; }
.processos-step-branch.is-no { background: rgba(239,68,68,.12); color: #f08a8a; }
.processos-parallel-label,
.processos-decision-question {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 2px 3px;
    color: #8292ad;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.processos-decision-question { color: #d2b36d; }
.processos-parallel-steps,
.processos-decision-branches {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.processos-flow-block.has-expanded .processos-parallel-steps,
.processos-flow-block.has-expanded .processos-decision-branches {
    grid-template-columns: 1fr;
}
.processos-step-expanded {
    padding: 0 17px 17px;
    border-top: 1px solid rgba(148,163,184,.09);
    animation: processosExpandir .18s ease-out;
}
@keyframes processosExpandir {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}
.processos-inline-intro { padding: 15px 0 13px; }
.processos-inline-intro > span,
.processos-inline-label {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #7185ad;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.processos-inline-intro p {
    margin: 7px 0 0;
    color: #c2ccdc;
    font-size: 11px;
    line-height: 1.6;
}
.processos-inline-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.processos-inline-card {
    min-height: 108px;
    padding: 12px;
    border: 1px solid rgba(148,163,184,.09);
    border-radius: 10px;
    background: rgba(255,255,255,.018);
}
.processos-inline-card.is-action { border-color: rgba(72,109,205,.18); background: rgba(51,82,164,.08); }
.processos-inline-card.is-next { border-color: rgba(16,185,129,.12); }
.processos-inline-card p {
    margin: 8px 0 0;
    color: #aebacc;
    font-size: 10px;
    line-height: 1.55;
}
.processos-inline-raci { display: grid; gap: 5px; margin-top: 8px; }
.processos-inline-raci-line {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 7px;
    align-items: center;
}
.processos-raci-key {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    font-size: 8px;
    font-weight: 900;
}
.processos-raci-key.is-r { background: rgba(245,158,11,.14); color: #f5c05e; }
.processos-raci-key.is-a { background: rgba(132,204,22,.12); color: #a7d860; }
.processos-raci-key.is-c { background: rgba(217,70,239,.11); color: #d989e7; }
.processos-raci-key.is-i { background: rgba(148,163,184,.11); color: #a7b1c2; }
.processos-inline-raci-line strong { display: block; color: #aab6c9; font-size: 8px; }
.processos-inline-raci-line div > span { color: #74839c; font-size: 9px; }
.processos-inline-notes {
    margin-top: 8px;
    padding: 11px 12px;
    border: 1px solid rgba(234,179,8,.12);
    border-radius: 10px;
    background: rgba(234,179,8,.04);
}
.processos-inline-notes strong { color: #c5ad72; font-size: 9px; }
.processos-inline-notes ul { margin: 7px 0 0; padding-left: 16px; color: #9aa7bb; font-size: 9px; line-height: 1.5; }
.processos-inline-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(148,163,184,.08);
}
.processos-inline-footer > span { color: #67758d; font-size: 8px; }
.processos-inline-footer > span i { margin-right: 5px; color: #5e7dca; }
.processos-inline-doc {
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid rgba(239,68,68,.17);
    border-radius: 8px;
    background: rgba(239,68,68,.05);
    color: #e9a0a0;
    font: inherit;
    font-size: 9px;
    font-weight: 800;
    cursor: pointer;
}
.processos-inline-doc i { margin-right: 5px; }
.processos-inline-doc:hover { background: rgba(239,68,68,.09); border-color: rgba(239,68,68,.28); }

@media (max-width: 1100px) {
    .processos-cards { grid-template-columns: 1fr; }
    .processos-detail-head { grid-template-columns: 1fr; }
    .processos-control-meta { justify-content: flex-start; max-width: none; }
    .processos-map-toolbar { align-items: flex-start; flex-direction: column; }
    .processos-area-filters { max-width: 100%; width: 100%; }
}
@media (max-width: 900px) {
    .processos-screen { padding: 22px 16px 32px; }
    .processos-header { align-items: flex-start; flex-direction: column; }
    .processos-toolbar, .processos-search { width: 100%; }
    .processos-detail-topbar { align-items: stretch; }
    .processos-doc-btn span { display: none; }
    .processos-flow-track { min-height: 460px; padding: 24px 18px 30px; }
    .processos-flow-block { flex-basis: 225px; min-width: 225px; }
    .processos-flow-block.has-expanded { flex-basis: 390px; min-width: 390px; }
    .processos-flow-block.is-parallel, .processos-flow-block.is-decision { flex-basis: 470px; min-width: 470px; }
    .processos-flow-block.is-parallel.has-expanded, .processos-flow-block.is-decision.has-expanded { flex-basis: 390px; min-width: 390px; }
    .processos-flow-connector { width: 40px; flex-basis: 40px; }
    .processos-inline-grid { grid-template-columns: 1fr; }
}
@media (max-width: 580px) {
    .processos-card { padding: 18px; }
    .processos-flow-block, .processos-flow-block.has-expanded { min-width: 82vw; flex-basis: 82vw; }
    .processos-flow-block.is-parallel, .processos-flow-block.is-decision,
    .processos-flow-block.is-parallel.has-expanded, .processos-flow-block.is-decision.has-expanded { min-width: 86vw; flex-basis: 86vw; }
    .processos-parallel-steps, .processos-decision-branches { grid-template-columns: 1fr; }
    .processos-step-toggle { min-height: 162px; }
    .processos-inline-footer { align-items: flex-start; flex-direction: column; }
}

/* ============================================================
   V13.19.15 — Fluxograma vertical com ramificações explícitas
   ============================================================ */
.processos-flow-track {
    width: 100%;
    min-height: 520px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 26px 24px 34px;
    overflow-x: hidden;
    overflow-y: auto;
}
.processos-stack-block {
    width: 100%;
    display: flex;
    justify-content: center;
}
.processos-flow-block {
    width: min(100%, 980px);
    min-width: 0;
    flex: 0 1 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.processos-flow-block.has-expanded {
    width: min(100%, 1100px);
    min-width: 0;
    flex-basis: auto;
}
.processos-flow-block.is-step {
    align-items: center;
}
.processos-single-step {
    width: min(100%, 520px);
}
.processos-flow-block.is-parallel,
.processos-flow-block.is-decision {
    padding: 18px;
    border: 1px solid rgba(148,163,184,.11);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.022), rgba(255,255,255,.015));
}
.processos-flow-connector.is-vertical {
    width: 100%;
    height: 54px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #4d66a6;
}
.processos-flow-connector.is-vertical span {
    width: 2px;
    flex: 1;
    background: linear-gradient(180deg, rgba(79,106,174,.25), rgba(79,106,174,.75));
}
.processos-flow-connector.is-vertical i {
    margin-top: -1px;
    font-size: 11px;
}
.processos-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 8px;
}
.processos-block-header strong {
    color: #dce6f9;
    font-size: 14px;
    line-height: 1.4;
    text-align: right;
}
.processos-block-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    border-radius: 999px;
    border: 1px solid rgba(90,117,191,.22);
    background: rgba(50,80,159,.11);
    color: #87a4ea;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}
.processos-block-header.is-decision .processos-block-tag {
    color: #e7c77d;
    border-color: rgba(234,179,8,.18);
    background: rgba(234,179,8,.06);
}
.processos-parallel-shell,
.processos-decision-shell {
    position: relative;
}
.processos-parallel-junction,
.processos-decision-arrow,
.processos-decision-merge {
    display: block;
    width: 2px;
    margin: 0 auto;
    background: linear-gradient(180deg, rgba(82,110,182,.35), rgba(82,110,182,.85));
}
.processos-parallel-junction.top,
.processos-parallel-junction.bottom,
.processos-decision-arrow,
.processos-decision-merge {
    height: 24px;
}
.processos-parallel-steps {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding-top: 18px;
}
.processos-parallel-steps::before,
.processos-decision-branches::before {
    content: '';
    position: absolute;
    left: 15%;
    right: 15%;
    top: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(82,110,182,.12), rgba(82,110,182,.85), rgba(82,110,182,.12));
}
.processos-parallel-steps > .processos-step,
.processos-decision-branches > .processos-branch-lane > .processos-step {
    position: relative;
}
.processos-parallel-steps > .processos-step::before,
.processos-decision-branches > .processos-branch-lane > .processos-step::before {
    content: '';
    position: absolute;
    top: -18px;
    left: 50%;
    width: 2px;
    height: 18px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, rgba(82,110,182,.85), rgba(82,110,182,.25));
}
.processos-decision-core {
    display: grid;
    justify-items: center;
}
.processos-decision-diamond {
    width: 260px;
    min-height: 124px;
    padding: 18px;
    display: grid;
    place-items: center;
    text-align: center;
    color: #f3f6ff;
    font-size: 17px;
    font-weight: 850;
    line-height: 1.25;
    background: linear-gradient(145deg, rgba(29,44,82,.95), rgba(18,28,52,.96));
    border: 1px solid rgba(234,179,8,.24);
    box-shadow: 0 18px 40px rgba(0,0,0,.22);
    transform: rotate(45deg);
    border-radius: 24px;
    margin: 8px 0 28px;
}
.processos-decision-diamond::before {
    content: '';
    position: absolute;
}
.processos-decision-diamond {
    position: relative;
}
.processos-decision-diamond > * { transform: rotate(-45deg); }
.processos-decision-diamond,
.processos-decision-diamond::before,
.processos-decision-diamond::after { box-sizing: border-box; }
.processos-decision-diamond { overflow: visible; }
.processos-decision-diamond {
    display: flex;
    align-items: center;
    justify-content: center;
}
.processos-decision-diamond {
    transform: rotate(45deg);
}
.processos-decision-diamond { }
.processos-decision-diamond {
    white-space: normal;
}
.processos-decision-diamond {
    isolation: isolate;
}
.processos-decision-diamond::after {
    content: attr(data-text);
}
.processos-decision-diamond {
    padding: 0;
}
.processos-decision-diamond {
    overflow: visible;
}
.processos-decision-diamond {
    font-size: 0;
}
.processos-decision-diamond::before {
    content: "";
}
.processos-decision-diamond {
    position: relative;
}
.processos-decision-diamond {
    background: linear-gradient(145deg, rgba(29,44,82,.95), rgba(18,28,52,.96));
}
.processos-decision-diamond {
    border-radius: 22px;
}
.processos-decision-diamond {
    line-height: 0;
}
.processos-decision-diamond::after {
    content: none;
}
.processos-decision-diamond {
    font-size: initial;
}
.processos-decision-diamond {
    line-height: initial;
}
.processos-decision-diamond {
    text-align: center;
}
.processos-decision-diamond {
    padding: 0;
}
.processos-decision-diamond {
    color: transparent;
}
.processos-decision-diamond::before {
    content: attr(data-label);
}
.processos-decision-diamond::before {
    color: #f3f6ff;
    font-size: 17px;
    font-weight: 850;
    line-height: 1.25;
    width: 78%;
    text-align: center;
    transform: rotate(-45deg);
}
.processos-decision-branches {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    padding-top: 20px;
}
.processos-branch-lane {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.processos-branch-head {
    align-self: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.processos-branch-lane.is-yes .processos-branch-head {
    color: #6fd9a8;
    background: rgba(16,185,129,.10);
    border: 1px solid rgba(16,185,129,.18);
}
.processos-branch-lane.is-no .processos-branch-head {
    color: #f49b9b;
    background: rgba(239,68,68,.08);
    border: 1px solid rgba(239,68,68,.16);
}
.processos-step {
    width: 100%;
    max-width: none;
}
.processos-step-toggle {
    min-height: 190px;
}
.processos-step-summary {
    -webkit-line-clamp: 3;
    font-size: 11px;
}
.processos-step-toggle > strong {
    font-size: 15px;
}
.processos-step-number {
    min-width: 34px;
    height: 26px;
    font-size: 10px;
}
.processos-inline-grid {
    grid-template-columns: 1fr 1fr;
}
@media (max-width: 1100px) {
    .processos-flow-track { padding: 22px 16px 28px; }
    .processos-parallel-steps,
    .processos-decision-branches,
    .processos-inline-grid { grid-template-columns: 1fr; }
    .processos-parallel-steps::before,
    .processos-decision-branches::before { left: 50%; right: 50%; width: 2px; height: 16px; top: 0; transform: translateX(-50%); background: linear-gradient(180deg, rgba(82,110,182,.85), rgba(82,110,182,.12)); }
    .processos-flow-block.is-parallel,
    .processos-flow-block.is-decision { padding: 16px; }
}
@media (max-width: 720px) {
    .processos-decision-diamond {
        width: 210px;
        min-height: 104px;
    }
    .processos-decision-diamond::before { font-size: 14px; }
    .processos-block-header { flex-direction: column; }
    .processos-block-header strong { text-align: left; }
    .processos-single-step { width: 100%; }
}

/* limpeza do losango */
.processos-decision-diamond {
    width: 230px;
    min-height: 230px;
    padding: 0;
    display: grid;
    place-items: center;
    font-size: initial;
    line-height: normal;
    color: transparent;
    overflow: visible;
}
.processos-decision-diamond::before,
.processos-decision-diamond::after {
    content: none !important;
}
.processos-decision-diamond span {
    width: 76%;
    color: #f3f6ff;
    font-size: 17px;
    font-weight: 850;
    line-height: 1.25;
    text-align: center;
    transform: rotate(-45deg);
}
@media (max-width: 720px) {
    .processos-decision-diamond {
        width: 190px;
        min-height: 190px;
    }
    .processos-decision-diamond span { font-size: 14px; }
}

/* ============================================================
   V13.19.16 — MAPA SIMPLES
   O mapa mostra só o essencial; o PDF concentra a complexidade.
   ============================================================ */
.processos-flow-track {
    gap: 0;
    padding: 22px 18px 30px;
}
.processos-flow-connector.is-vertical {
    height: 38px;
}
.processos-single-step {
    width: min(100%, 440px);
}
.processos-flow-block.is-parallel {
    width: min(100%, 930px);
    padding: 14px;
}
.processos-flow-block.is-decision {
    width: min(100%, 980px);
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.processos-block-header {
    justify-content: center;
    margin: 0 0 10px;
}
.processos-block-header strong { display: none; }
.processos-block-tag {
    padding: 5px 9px;
    font-size: 9px;
}
.processos-step-toggle {
    min-height: 118px;
    padding: 16px 18px 14px;
}
.processos-step-toggle > strong {
    font-size: 17px;
    line-height: 1.2;
}
.processos-step-summary {
    margin-top: 7px;
    -webkit-line-clamp: 1;
    font-size: 10px;
    line-height: 1.45;
}
.processos-step-owner {
    margin-top: 9px;
    font-size: 9px;
}
.processos-step-more {
    padding-top: 9px;
    font-size: 9px;
}
.processos-step.is-expanded .processos-step-toggle {
    min-height: 106px;
}
.processos-step-expanded {
    padding: 0 16px 15px;
}
.processos-inline-description {
    margin: 13px 0 10px;
    color: #bac5d7;
    font-size: 10px;
    line-height: 1.55;
}
.processos-inline-grid.is-compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}
.processos-inline-grid.is-compact .processos-inline-card {
    min-height: 82px;
    padding: 10px;
}
.processos-inline-grid.is-compact .processos-inline-card p {
    margin-top: 7px;
    font-size: 9px;
    line-height: 1.45;
}
.processos-inline-label {
    font-size: 7px;
}
.processos-inline-notes {
    margin-top: 7px;
    padding: 9px 10px;
}
.processos-inline-footer {
    margin-top: 8px;
    padding-top: 8px;
}

/* Paralelos: caminhos separados, mas simples */
.processos-parallel-junction.top,
.processos-parallel-junction.bottom {
    height: 18px;
}
.processos-parallel-steps {
    gap: 18px;
    padding-top: 14px;
}
.processos-parallel-steps > .processos-step::before {
    top: -14px;
    height: 14px;
}

/* Decisões: o losango abre duas rotas independentes */
.processos-decision-core {
    margin-bottom: 2px;
}
.processos-decision-arrow {
    height: 18px;
}
.processos-decision-diamond {
    width: 158px;
    min-height: 158px;
    margin: 4px auto 30px;
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(42,63,118,.94), rgba(24,37,70,.98));
    border: 1px solid rgba(96,126,205,.42);
    box-shadow: 0 14px 32px rgba(0,0,0,.18);
}
.processos-decision-diamond span {
    width: 72%;
    color: #f3f6ff;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.2;
}
.processos-decision-paths {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 70px;
    padding-top: 22px;
}
.processos-decision-paths::before {
    content: '';
    position: absolute;
    top: 0;
    left: 24%;
    right: 24%;
    height: 2px;
    background: linear-gradient(90deg, rgba(84,113,188,.12), rgba(84,113,188,.8), rgba(84,113,188,.12));
}
.processos-decision-path {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
}
.processos-decision-path::before {
    content: '';
    width: 2px;
    height: 22px;
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(84,113,188,.72);
}
.processos-decision-path.is-yes::before {
    background: rgba(16,185,129,.50);
}
.processos-decision-path.is-no::before {
    background: rgba(239,68,68,.42);
}
.processos-decision-path .processos-branch-head {
    margin: 0 auto 9px;
}
.processos-decision-path.is-yes .processos-branch-head {
    color: #65d8a4;
    background: rgba(16,185,129,.10);
    border: 1px solid rgba(16,185,129,.18);
}
.processos-decision-path.is-no .processos-branch-head {
    color: #f49c9c;
    background: rgba(239,68,68,.08);
    border: 1px solid rgba(239,68,68,.15);
}
.processos-path-line {
    width: 2px;
    height: 14px;
    margin: 0 auto;
    background: rgba(84,113,188,.52);
}
.processos-branch-route {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    gap: 7px;
    min-height: 30px;
    margin-top: 10px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
}
.processos-branch-route.is-continue {
    color: #83a4ef;
    border: 1px solid rgba(86,119,211,.20);
    background: rgba(52,83,168,.08);
}
.processos-branch-route.is-return {
    color: #e9b66f;
    border: 1px solid rgba(245,158,11,.18);
    background: rgba(245,158,11,.06);
}
.processos-branch-route.is-end {
    color: #aab5c7;
    border: 1px solid rgba(148,163,184,.16);
    background: rgba(148,163,184,.05);
}

@media (max-width: 900px) {
    .processos-inline-grid.is-compact { grid-template-columns: 1fr; }
    .processos-decision-paths { grid-template-columns: 1fr; gap: 30px; padding-top: 14px; }
    .processos-decision-paths::before { left: 50%; right: auto; width: 2px; height: 14px; }
    .processos-decision-path::before { display: none; }
    .processos-decision-diamond { margin-bottom: 18px; }
}

/* ============================================================
   V13.19.17 — AJUSTE FINO DE CONECTORES
   Menos distância entre passos e continuação saindo do ramo certo.
   ============================================================ */
.processos-flow-track {
    padding: 18px 18px 24px;
}
.processos-flow-connector.is-vertical {
    height: 24px;
}
.processos-flow-connector.is-vertical span {
    background: linear-gradient(180deg, rgba(79,106,174,.35), rgba(79,106,174,.78));
}
.processos-step-toggle {
    min-height: 104px;
}
.processos-step.is-expanded .processos-step-toggle {
    min-height: 98px;
}
.processos-single-step {
    width: min(100%, 430px);
}
.processos-flow-block.is-parallel {
    width: min(100%, 860px);
    padding: 12px;
}
.processos-parallel-junction.top,
.processos-parallel-junction.bottom,
.processos-decision-arrow {
    height: 12px;
}
.processos-parallel-steps {
    gap: 12px;
    padding-top: 10px;
}
.processos-parallel-steps > .processos-step::before {
    top: -10px;
    height: 10px;
}
.processos-flow-block.is-decision {
    width: min(100%, 900px);
}
.processos-decision-core {
    margin-bottom: 0;
}
.processos-decision-diamond {
    margin: 2px auto 18px;
}
.processos-decision-paths {
    gap: 34px;
    padding-top: 12px;
}
.processos-decision-paths::before {
    left: 23%;
    right: 23%;
}
.processos-decision-path::before {
    height: 12px;
    top: -12px;
}
.processos-path-line {
    height: 10px;
}
.processos-branch-route {
    margin-top: 8px;
}
.processos-decision-exit {
    position: relative;
    height: 26px;
    margin-top: 4px;
}
.processos-decision-exit-line,
.processos-decision-exit-drop {
    position: absolute;
    display: block;
}
.processos-decision-exit-line {
    top: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(79,106,174,.10), rgba(79,106,174,.85));
}
.processos-decision-exit-drop {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 26px;
    background: linear-gradient(180deg, rgba(79,106,174,.85), rgba(79,106,174,.22));
}
.processos-decision-exit.is-yes .processos-decision-exit-line {
    left: 25%;
    width: 25%;
}
.processos-decision-exit.is-no .processos-decision-exit-line {
    left: 50%;
    width: 25%;
    background: linear-gradient(90deg, rgba(79,106,174,.85), rgba(79,106,174,.10));
}
@media (max-width: 900px) {
    .processos-flow-track {
        padding: 16px 12px 20px;
    }
    .processos-flow-connector.is-vertical {
        height: 18px;
    }
    .processos-decision-paths {
        gap: 22px;
        padding-top: 10px;
    }
    .processos-decision-exit {
        height: 18px;
    }
    .processos-decision-exit-line {
        display: none;
    }
    .processos-decision-exit-drop {
        height: 18px;
    }
}

/* ============================================================
   V13.19.18 — COMPACTAÇÃO DE ESPAÇOS
   Reduz os respiros entre cards, setas e conectores.
   ============================================================ */
.processos-flow-track {
    padding: 12px 16px 16px;
}
.processos-stack-block {
    margin: 0;
}
.processos-flow-block {
    gap: 8px;
}
.processos-single-step {
    width: min(100%, 430px);
}
.processos-step-toggle {
    min-height: 92px;
    padding: 14px 16px 12px;
}
.processos-step.is-expanded .processos-step-toggle {
    min-height: 90px;
}
.processos-step-toggle > strong {
    font-size: 16px;
}
.processos-step-summary {
    margin-top: 5px;
}
.processos-step-owner {
    margin-top: 7px;
}
.processos-step-more {
    padding-top: 7px;
}
.processos-step-expanded {
    padding: 0 14px 12px;
}
.processos-flow-connector.is-vertical {
    height: 14px;
}
.processos-flow-connector.is-vertical i {
    font-size: 10px;
}
.processos-flow-block.is-parallel {
    padding: 10px;
}
.processos-parallel-junction.top,
.processos-parallel-junction.bottom,
.processos-decision-arrow {
    height: 8px;
}
.processos-parallel-steps {
    gap: 10px;
    padding-top: 8px;
}
.processos-parallel-steps > .processos-step::before {
    top: -8px;
    height: 8px;
}
.processos-flow-block.is-decision {
    width: min(100%, 860px);
}
.processos-decision-core {
    margin-bottom: 0;
}
.processos-decision-diamond {
    margin: 0 auto 12px;
    width: 150px;
    min-height: 150px;
}
.processos-decision-paths {
    gap: 24px;
    padding-top: 8px;
}
.processos-decision-path::before {
    height: 8px;
    top: -8px;
}
.processos-path-line {
    height: 8px;
}
.processos-branch-head {
    margin-bottom: 6px;
}
.processos-branch-route {
    margin-top: 6px;
    min-height: 28px;
}
.processos-decision-exit {
    height: 12px;
    margin-top: 0;
}
.processos-decision-exit-drop {
    height: 12px;
}
@media (max-width: 900px) {
    .processos-flow-track {
        padding: 10px 10px 14px;
    }
    .processos-flow-connector.is-vertical {
        height: 12px;
    }
    .processos-decision-paths {
        gap: 18px;
    }
    .processos-decision-exit {
        height: 10px;
    }
    .processos-decision-exit-drop {
        height: 10px;
    }
}

/* ============================================================
   V13.19.19 — CORREÇÃO REAL DO ESPAÇAMENTO
   Remove heranças do antigo conector horizontal (90px / 54px).
   ============================================================ */
.processos-flow-connector.is-vertical {
    flex: 0 0 auto;
    width: 100%;
    height: 14px;
    min-height: 0;
    max-height: 14px;
    margin: 0;
    padding: 0;
}

/* ============================================================
   V13.19.20 — DECISÃO EXPANSÍVEL SEM ESPREMER O CONTEÚDO
   Fechado: Sim/Não lado a lado. Aberto: ramo ativo em largura total.
   ============================================================ */
.processos-decision-shell.has-open-branch .processos-decision-paths {
    grid-template-columns: 1fr;
    gap: 12px;
    padding-top: 10px;
}
.processos-decision-shell.has-open-branch .processos-decision-paths::before {
    left: 50%;
    right: auto;
    width: 2px;
    height: 10px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, rgba(84,113,188,.85), rgba(84,113,188,.15));
}
.processos-decision-shell.has-open-branch .processos-decision-path::before {
    display: none;
}
.processos-decision-path.is-open-path {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}
.processos-decision-path.is-open-path .processos-step {
    width: 100%;
}
.processos-decision-path.is-open-path .processos-inline-grid.is-compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.processos-decision-path.is-compact-path {
    width: 100%;
    max-width: 440px;
    margin: 2px auto 0;
}
.processos-decision-path.is-compact-path .processos-step-toggle {
    min-height: 86px;
}
.processos-decision-path.is-compact-path .processos-step-summary {
    -webkit-line-clamp: 1;
}
.processos-decision-path.is-compact-path .processos-branch-route {
    margin-top: 5px;
}
@media (max-width: 900px) {
    .processos-decision-path.is-open-path .processos-inline-grid.is-compact {
        grid-template-columns: 1fr;
    }
    .processos-decision-path.is-compact-path {
        max-width: 100%;
    }
}

/* ============================================================
   V13.19.21 — EDIÇÃO DE ETAPAS PELO ADMIN
   ============================================================ */
.processos-step {
    position: relative;
}
.processos-step-menu {
    position: absolute;
    z-index: 8;
    top: 10px;
    right: 10px;
}
.processos-step-menu-trigger {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 9px;
    background: rgba(8,16,30,.78);
    color: #7f8ca3;
    font: inherit;
    cursor: pointer;
    transition: .16s ease;
}
.processos-step-menu-trigger:hover {
    color: #dbe5f8;
    border-color: rgba(91,125,214,.34);
    background: rgba(42,67,132,.24);
}
.processos-step-menu-popover {
    position: absolute;
    z-index: 10;
    top: 36px;
    right: 0;
    min-width: 146px;
    padding: 5px;
    border: 1px solid rgba(148,163,184,.14);
    border-radius: 10px;
    background: #0e1727;
    box-shadow: 0 16px 34px rgba(0,0,0,.34);
}
.processos-step-menu-popover[hidden] { display: none !important; }
.processos-step-menu-popover button {
    width: 100%;
    min-height: 34px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #d8e0ef;
    font: inherit;
    font-size: 10px;
    font-weight: 750;
    text-align: left;
    cursor: pointer;
}
.processos-step-menu-popover button:hover { background: rgba(76,111,204,.13); }
.processos-step-menu-popover i { color: #7796e6; }
.processos-step-menu + .processos-step-toggle { padding-right: 52px; }

.processos-step-people {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px 11px;
    margin-top: 8px;
}
.processos-step-people .processos-step-owner,
.processos-step-people .processos-step-participants {
    margin-top: 0;
}
.processos-step-participants {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #75839b;
    font-size: 9px;
    font-weight: 700;
}
.processos-step-participants i { color: #536fae; }

.processos-inline-grid.is-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.processos-editor-open { overflow: hidden; }
.processos-editor-overlay {
    position: fixed;
    z-index: 10050;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(2,7,15,.76);
    backdrop-filter: blur(8px);
}
.processos-editor-overlay[hidden] { display: none !important; }
.processos-editor-modal {
    width: min(880px, 100%);
    max-height: min(88vh, 900px);
    overflow: auto;
    border: 1px solid rgba(148,163,184,.15);
    border-radius: 18px;
    background: #0d1625;
    box-shadow: 0 30px 90px rgba(0,0,0,.5);
}
.processos-editor-head {
    position: sticky;
    z-index: 2;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px 16px;
    border-bottom: 1px solid rgba(148,163,184,.1);
    background: rgba(13,22,37,.96);
    backdrop-filter: blur(10px);
}
.processos-editor-head span {
    display: block;
    margin-bottom: 4px;
    color: #6684cf;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.processos-editor-head h2 {
    margin: 0;
    color: #edf2ff;
    font-size: 20px;
    letter-spacing: -.02em;
}
.processos-editor-close {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(148,163,184,.12);
    border-radius: 10px;
    background: rgba(255,255,255,.03);
    color: #aab5c7;
    cursor: pointer;
}
.processos-editor-close:hover { color: #fff; background: rgba(255,255,255,.07); }
.processos-editor-form {
    display: grid;
    gap: 14px;
    padding: 20px;
}
.processos-editor-grid {
    display: grid;
    gap: 12px;
}
.processos-editor-grid.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.processos-editor-form label { display: grid; gap: 7px; }
.processos-editor-form label > span {
    color: #8796ae;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.processos-editor-form input,
.processos-editor-form textarea {
    width: 100%;
    border: 1px solid rgba(148,163,184,.13);
    border-radius: 10px;
    background: rgba(255,255,255,.025);
    color: #e9effb;
    font: inherit;
    font-size: 11px;
    line-height: 1.5;
    outline: none;
    resize: vertical;
}
.processos-editor-form input { min-height: 40px; padding: 0 12px; }
.processos-editor-form textarea { padding: 10px 12px; }
.processos-editor-form input:focus,
.processos-editor-form textarea:focus {
    border-color: rgba(80,116,217,.52);
    box-shadow: 0 0 0 3px rgba(59,95,210,.1);
}
.processos-editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    padding-top: 4px;
}
.processos-editor-cancel,
.processos-editor-save {
    min-height: 38px;
    padding: 0 14px;
    border-radius: 10px;
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}
.processos-editor-cancel {
    border: 1px solid rgba(148,163,184,.13);
    background: rgba(255,255,255,.03);
    color: #aeb9ca;
}
.processos-editor-save {
    border: 1px solid rgba(76,111,205,.34);
    background: rgba(50,83,177,.28);
    color: #edf3ff;
}
.processos-editor-save i { margin-right: 6px; }
.processos-editor-save:disabled { opacity: .6; cursor: wait; }
@media (max-width: 720px) {
    .processos-editor-overlay { padding: 10px; }
    .processos-editor-grid.is-two { grid-template-columns: 1fr; }
    .processos-editor-modal { max-height: 94vh; }
    .processos-inline-grid.is-compact { grid-template-columns: 1fr; }
}
