/* Organogram (public page + staff editor). Colours follow SECOOP's official organogram. */
.org-chart {
  --org-line: #9aa8b8; --org-gap: 22px;
  --k-ministry: #545454; --k-executive: #a6d14f; --k-advisory: #4285d5; --k-support: #819e43;
  --k-general_directorate: #a6d14f; --k-directorate: #9f945c; --k-department: #ffff05;
  overflow-x: auto; padding: 8px 4px 24px; text-align: center;
}
.org-chart .org-tree { display: inline-flex; flex-direction: column; align-items: center; min-width: 100%; }
.org-node { display: flex; flex-direction: column; align-items: center; }

/* Boxes */
.org-box { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-width: 132px; max-width: 220px; min-height: 52px; padding: 9px 12px; border-radius: 10px; color: #fff; line-height: 1.2;
  box-shadow: 0 3px 10px rgba(11, 44, 79, .18); transition: transform .15s, box-shadow .15s; }
.org-box[role="button"] { cursor: pointer; }
.org-box[role="button"]:hover, .org-box[role="button"]:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(11, 44, 79, .28); outline: none; }
.org-sigla { font: 700 1.05rem 'Poppins', sans-serif; letter-spacing: .02em; }
.org-name { font-size: .78rem; font-weight: 500; }
.org-sigla + .org-name { font-size: .68rem; opacity: .9; }
.org-head { font-size: .68rem; opacity: .85; font-style: italic; }
.org-box { border-radius: 3px; text-transform: uppercase; text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
  background-image: linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(0, 0, 0, .12)); }
.kind-ministry > .org-box { background-color: var(--k-ministry); min-width: 170px; }
.kind-ministry > .org-box .org-name { font-size: 1.15rem; font-weight: 500; }
.kind-executive > .org-box { background-color: var(--k-executive); min-width: 240px; max-width: 280px; padding: 12px 18px; }
.kind-executive > .org-box .org-name { font-size: .95rem; font-weight: 500; }
.kind-advisory > .org-box { background-color: var(--k-advisory); }
.org-side-left > .org-child:first-child > .kind-advisory > .org-box { background-color: #1d3e67; } /* Conselho Consultivo, dark blue on the official chart */
.kind-support > .org-box { background-color: var(--k-support); }
.kind-support > .org-box .org-name { font-size: .9rem; }
.kind-general_directorate > .org-box { background-color: var(--k-general_directorate); min-width: 220px; }
.kind-general_directorate > .org-box .org-name { font-size: 1.05rem; font-weight: 500; }
.kind-directorate > .org-box { background-color: var(--k-directorate); min-width: 110px; max-width: 150px; }
.kind-directorate > .org-box .org-name { font-size: .95rem; font-weight: 500; }
.kind-department > .org-box { background-color: var(--k-department); color: #111; text-shadow: none; min-width: 128px; max-width: 150px;
  min-height: 52px; box-shadow: 0 2px 6px rgba(0,0,0,.18); }
.kind-department > .org-box .org-name { font-size: .64rem; font-weight: 800; font-family: Georgia, 'Times New Roman', serif; }
.org-name { font-family: Georgia, 'Times New Roman', serif; }

/* Horizontal rows of children with connector lines */
.org-row { display: flex; justify-content: center; position: relative; padding-top: var(--org-gap); }
.org-row::before { content: ''; position: absolute; top: 0; left: 50%; height: var(--org-gap); border-left: 2px solid var(--org-line); }
.org-row > .org-child { position: relative; padding: var(--org-gap) 6px 0; }
.org-row > .org-child::before, .org-row > .org-child::after { content: ''; position: absolute; top: 0; right: 50%; width: 50%; height: var(--org-gap); border-top: 2px solid var(--org-line); }
.org-row > .org-child::after { right: auto; left: 50%; border-left: 2px solid var(--org-line); }
.org-row > .org-child:first-child::before, .org-row > .org-child:last-child::after { border: 0 none; }
.org-row > .org-child:last-child::before { border-right: 2px solid var(--org-line); border-top-right-radius: 8px; }
.org-row > .org-child:first-child::after { border-top-left-radius: 8px; }
.org-row > .org-child:only-child { padding-top: 0; }
.org-row > .org-child:only-child::before, .org-row > .org-child:only-child::after { display: none; }

/* Departments stacked under their directorate */
.org-stack { display: flex; flex-direction: column; align-items: center; }
.org-stack > .org-child { position: relative; padding-top: 12px; }
.org-stack > .org-child::before { content: ''; position: absolute; top: 0; left: 50%; height: 12px; border-left: 2px solid var(--org-line); }

/* Advisory bodies (left) and support units (right) next to the executive */
.org-sides { display: grid; grid-template-columns: 1fr 2px 1fr; column-gap: 0; width: 100%; min-width: 640px; }
.org-spine { background: var(--org-line); }
.org-side { display: flex; flex-direction: column; gap: 10px; padding: 14px 0; }
.org-side-left { align-items: flex-end; } .org-side-right { align-items: flex-start; }
.org-side > .org-child { position: relative; display: flex; }
.org-side-left > .org-child { padding-right: 28px; } .org-side-right > .org-child { padding-left: 28px; }
.org-side > .org-child::before { content: ''; position: absolute; top: 26px; width: 28px; border-top: 2px dashed var(--org-line); }
.org-side-left > .org-child::before { right: 0; } .org-side-right > .org-child::before { left: 0; }
.org-side .org-box { min-width: 170px; max-width: 200px; }
.org-sides + .org-row::before { display: none; } /* the spine already reaches the next row */
.org-sides + .org-row { padding-top: 0; } .org-sides + .org-row > .org-child:only-child { padding-top: 0; }

/* Staff editor tools */
.org-tools { display: flex; gap: 3px; justify-content: center; margin-top: 6px; }
.org-tools form { margin: 0; }
.org-tool { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; border: 0; background: rgba(255,255,255,.9);
  color: #0b2c4f; font-size: .75rem; padding: 0; line-height: 1; }
.org-tool:hover { background: #fff; color: #c8102e; }
.org-tool-add { background: #1c7c54; color: #fff; } .org-tool-add:hover { background: #156443; color: #fff; }
.kind-directorate > .org-box .org-tool, .kind-department > .org-box .org-tool { box-shadow: 0 0 0 1px rgba(0,0,0,.12); }

/* Details window (public) */
.org-detail { display: flex; gap: 16px; align-items: center; }
.org-detail-photo { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.org-detail-kind { display: inline-block; padding: 2px 10px; border-radius: 20px; font-size: .72rem; font-weight: 600; color: #fff; background: #0b2c4f; }
.org-detail-kind.kind-directorate { background: #9f945c; } .org-detail-kind.kind-department { color: #111; background: #ffff05; }
.org-legend { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; font-size: .8rem; color: #6b7785; }
.org-legend span::before { content: ''; display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: var(--c); }

/* Small screens: an indented vertical tree */
@media (max-width: 991.98px) {
  .org-chart { text-align: left; overflow-x: visible; }
  .org-chart .org-tree { display: flex; align-items: stretch; }
  .org-node { align-items: stretch; }
  .org-box, .kind-executive > .org-box, .kind-directorate > .org-box, .kind-department > .org-box, .org-side .org-box,
  .kind-general_directorate > .org-box, .kind-ministry > .org-box { max-width: none; min-width: 0; align-items: flex-start; text-align: left; }
  .org-row, .org-stack, .org-side { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 0 0 18px;
    margin-left: 10px; border-left: 2px solid var(--org-line); }
  .org-sides { display: block; min-width: 0; } .org-spine { display: none; }
  .org-side-left > .org-child, .org-side-right > .org-child { padding: 0; }
  .org-row::before, .org-row > .org-child::before, .org-row > .org-child::after, .org-stack > .org-child::before,
  .org-side > .org-child::before { display: none; }
  .org-row > .org-child, .org-stack > .org-child { padding: 0; }
  .org-sides + .org-row { padding-top: 8px; }
}
.kind-support > .org-box .org-tool-add { background: #fff; color: #1c7c54; } /* green "+" on a green box */
