/* Percurso de figuras PCDT: cores por papel da fonte, estado por texto e traço. */
.pcdt-algorithm-page {
    --algorithm-rule: var(--space-px);
    --algorithm-map-readable: 125rem;
    --algorithm-map-large: 156rem;
    --algorithm-muted-opacity: .32;
    --algorithm-edge-width: 2;
    --algorithm-path-width: 4;
    --algorithm-focus-width: 5;
    --algorithm-map-font-size: 15px;
    --algorithm-map-state-size: 10px;
    margin: 0;
    font-family: var(--font-sans);
    color: var(--text-primary);
    background: var(--surface-base);
}
.pcdt-algorithm { max-inline-size: var(--container-2xl); margin-inline: auto; padding: var(--space-5) var(--space-6); }
.pcdt-algorithm__toolbar,
.pcdt-algorithm__tools,
.pcdt-algorithm__step-tools,
.pcdt-algorithm__map-heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-4);
}
.pcdt-algorithm__toolbar { justify-content: space-between; padding: var(--space-4) var(--space-6); border-block-end: var(--algorithm-rule) solid var(--border-default); }
.pcdt-algorithm h1 { font-family: var(--font-display); font-size: var(--text-2xl); line-height: var(--leading-tight); margin-block: var(--space-3); }
.pcdt-algorithm h2 { font-size: var(--text-xl); line-height: var(--leading-snug); }
.pcdt-algorithm h3 { font-size: var(--text-lg); }
.pcdt-algorithm :is(h1,h2,h3)::before,
.pcdt-algorithm :is(h1,h2,h3)::after { content: none; }
.pcdt-algorithm p { text-align: start; line-height: var(--leading-relaxed); }
.pcdt-algorithm__header { background: var(--surface-base); color: var(--text-primary); box-shadow: none; border: 0; padding: 0; }
.pcdt-algorithm__header > p { margin-block: var(--space-2); }
.pcdt-algorithm-page a:not(.btn) { color: var(--signal-primary); }
.pcdt-algorithm-page .btn-secondary { color: var(--text-primary); }
.pcdt-algorithm-page select { background: var(--surface-base); color: var(--text-primary); border: var(--algorithm-rule) solid var(--border-default); padding: var(--space-2); border-radius: var(--radius-sm); font: inherit; }
.pcdt-algorithm__eyebrow,
.pcdt-algorithm__small { color: var(--text-secondary); font-size: var(--text-sm); }
.pcdt-algorithm__eyebrow { font-weight: var(--weight-semibold); }
.pcdt-algorithm__notice { padding: var(--space-4); background: var(--surface-raised); border-inline-start: var(--space-1) solid var(--signal-primary); }
.pcdt-algorithm__editorial { margin-block: var(--space-4); font-size: var(--text-sm); }
.pcdt-algorithm__editorial summary { color: var(--text-primary); cursor: pointer; font-weight: var(--weight-semibold); }
.pcdt-algorithm__entry-note { margin-block: var(--space-6); padding: var(--space-4) var(--space-5); border: var(--algorithm-rule) solid var(--warning); border-inline-start-width: var(--space-1); background: var(--warning-light); }
.pcdt-algorithm__entry-note h2 { font-size: var(--text-base); margin-block: 0 var(--space-2); }
.pcdt-algorithm__entry-note p { margin-block: var(--space-2); font-size: var(--text-sm); }
.pcdt-algorithm__entry-note a { font-size: var(--text-sm); }
.pcdt-algorithm__explorer { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 5fr); gap: var(--space-6); align-items: start; }
.pcdt-algorithm__workspace { display: grid; gap: var(--space-4); min-inline-size: 0; }
.pcdt-algorithm__question-panel { padding: var(--space-6); background: var(--surface-raised); border: var(--algorithm-rule) solid var(--border-default); }
.pcdt-algorithm__source-step { padding: var(--space-3) var(--space-4); border-inline-start: var(--space-1) solid var(--drop-prescrever-text); background: var(--drop-prescrever-bg); font-weight: var(--weight-semibold); }
.pcdt-algorithm__source-step--group { border-color: var(--success); background: var(--success-light); }
.pcdt-algorithm__answers { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block: var(--space-5); }
.pcdt-algorithm__answers .btn { white-space: normal; text-align: start; min-block-size: var(--space-11); max-inline-size: 100%; }
.pcdt-algorithm__answers:has([data-answer="left"]) { flex-direction: column; align-items: stretch; }
.pcdt-algorithm__context-notes { margin-block-start: var(--space-5); padding-block-start: var(--space-3); border-block-start: var(--algorithm-rule) solid var(--border-default); font-size: var(--text-sm); }
.pcdt-algorithm__context-notes p { margin-block: var(--space-3); }
.pcdt-algorithm__context-notes a { font-weight: var(--weight-semibold); }
.pcdt-algorithm__step-tools { margin-block-start: var(--space-6); }
.pcdt-algorithm__history-panel { padding: var(--space-4); }
.pcdt-algorithm__history-panel h2 { margin-block-start: 0; }
.pcdt-algorithm__history { margin: 0; padding-inline-start: var(--space-5); }
.pcdt-algorithm__history li { padding-block: var(--space-3); border-block-end: var(--algorithm-rule) solid var(--border-default); font-size: var(--text-sm); }
.pcdt-algorithm__history li span { display: block; margin-block-end: var(--space-2); }
.pcdt-algorithm__history .btn { font-size: var(--text-sm); }
.pcdt-algorithm__live { min-block-size: var(--space-6); font-size: var(--text-sm); color: var(--text-secondary); }
.pcdt-algorithm__map-panel { background: var(--surface-base); box-shadow: none; position: sticky; inset-block-start: var(--space-4); min-inline-size: 0; border-block-start: var(--algorithm-rule) solid var(--border-default); }
.pcdt-algorithm__map-heading { justify-content: space-between; align-items: start; padding-block: var(--space-4); }
.pcdt-algorithm__map-heading > div { flex: 1; min-inline-size: 16rem; }
.pcdt-algorithm__map-heading p { font-size: var(--text-xs); max-inline-size: 78ch; margin-block: var(--space-2); }
.pcdt-algorithm__map-heading h2 { margin-block: 0 var(--space-2); }
.pcdt-algorithm__map-heading label { color: var(--text-primary); display: grid; gap: var(--space-2); font-size: var(--text-sm); }
.pcdt-algorithm__map-scroll { max-inline-size: 100%; max-block-size: 70vh; overflow: auto; border: var(--algorithm-rule) solid var(--border-default); background: var(--surface-base); }
.pcdt-algorithm__map { display: block; inline-size: var(--algorithm-map-readable); max-inline-size: none; block-size: auto; }
.pcdt-algorithm__map-scroll[data-zoom="fit"] .pcdt-algorithm__map { inline-size: 100%; }
.pcdt-algorithm__map-scroll[data-zoom="large"] .pcdt-algorithm__map { inline-size: var(--algorithm-map-large); }
.pcdt-algorithm__node {
    --algorithm-node-fill: var(--surface-raised);
    --algorithm-node-stroke: var(--text-secondary);
    opacity: var(--algorithm-muted-opacity);
    cursor: pointer;
    outline: none;
}
.pcdt-algorithm__node--entry { --algorithm-node-fill: var(--info-light); --algorithm-node-stroke: var(--info); }
.pcdt-algorithm__node--group { --algorithm-node-fill: var(--success-light); --algorithm-node-stroke: var(--success); }
.pcdt-algorithm__node--action { --algorithm-node-fill: var(--drop-prescrever-bg); --algorithm-node-stroke: var(--drop-prescrever-text); }
.pcdt-algorithm__node--decision { --algorithm-node-fill: var(--warning-light); --algorithm-node-stroke: var(--warning); }
.pcdt-algorithm__node--terminal { --algorithm-node-fill: var(--error-light); --algorithm-node-stroke: var(--error); }
.pcdt-algorithm__node :is(rect, polygon) { fill: var(--algorithm-node-fill); stroke: var(--algorithm-node-stroke); stroke-width: var(--algorithm-edge-width); }
.pcdt-algorithm__node text { fill: var(--text-primary); font-family: var(--font-sans); font-size: var(--algorithm-map-font-size); }
.pcdt-algorithm__node .pcdt-algorithm__node-state { font-size: var(--algorithm-map-state-size); font-weight: var(--weight-semibold); }
.pcdt-algorithm__node.is-path { opacity: 1; }
.pcdt-algorithm__node.is-path :is(rect,polygon) { stroke-width: var(--algorithm-path-width); }
.pcdt-algorithm__node.is-current :is(rect,polygon) { stroke-dasharray: 8 4; stroke-width: var(--algorithm-focus-width); }
.pcdt-algorithm__node:is(:focus-visible,:hover) { opacity: 1; }
.pcdt-algorithm__node:focus-visible :is(rect,polygon) { stroke: var(--signal-primary); stroke-width: var(--algorithm-focus-width); stroke-dasharray: 3 3; }
.pcdt-algorithm__edge { opacity: var(--algorithm-muted-opacity); }
.pcdt-algorithm__edge path { fill: none; stroke: var(--text-secondary); stroke-width: var(--algorithm-edge-width); }
.pcdt-algorithm__edge text { fill: var(--text-primary); font-size: var(--algorithm-map-font-size); }
.pcdt-algorithm__edge.is-path { opacity: 1; }
.pcdt-algorithm__edge.is-path path { stroke: var(--signal-primary); stroke-width: var(--algorithm-path-width); }
.pcdt-algorithm__edge.is-path text { font-weight: var(--weight-semibold); }
.pcdt-algorithm__inspector { padding: var(--space-5); margin-block-start: var(--space-4); background: var(--surface-raised); }
.pcdt-algorithm__inspector h3 { margin-block-start: 0; }
.pcdt-algorithm__notes dl { margin-block: var(--space-5); }
.pcdt-algorithm__notes dl > div { display: grid; grid-template-columns: var(--space-8) minmax(0, 1fr); gap: var(--space-3); padding-block: var(--space-4); border-block-end: var(--algorithm-rule) solid var(--border-default); scroll-margin-block: var(--space-6); }
.pcdt-algorithm__notes dt { font-weight: var(--weight-semibold); }
.pcdt-algorithm__notes dd { margin: 0; line-height: var(--leading-relaxed); font-size: var(--text-sm); }
.pcdt-algorithm__notes :target { background: var(--signal-subtle); outline: var(--focus-ring-width) solid var(--signal-primary); }
.pcdt-algorithm__provenance { margin-block-start: var(--space-8); padding-block: var(--space-5); border-block-start: var(--algorithm-rule) solid var(--border-default); font-size: var(--text-sm); }
.pcdt-algorithm__provenance code { overflow-wrap: anywhere; }
@media (max-width: 768px) {
    .pcdt-algorithm { padding: var(--space-5) var(--space-4); }
    .pcdt-algorithm__explorer { grid-template-columns: minmax(0, 1fr); }
    .pcdt-algorithm__map-panel { position: static; }
    .pcdt-algorithm__question-panel { padding: var(--space-4); }
    .pcdt-algorithm__toolbar { padding: var(--space-4); }
    .pcdt-algorithm__map-scroll { max-block-size: 60vh; }
    .pcdt-algorithm h1 { font-size: var(--text-2xl); }
}
@media print {
    .pcdt-algorithm__toolbar,
    .pcdt-algorithm__answers,
    .pcdt-algorithm__step-tools,
    .pcdt-algorithm__history .btn,
    .pcdt-algorithm__map-heading label { display: none; }
    .pcdt-algorithm__map-scroll { overflow: visible; max-block-size: none; }
    .pcdt-algorithm__map-scroll .pcdt-algorithm__map { inline-size: 100%; }
    .pcdt-algorithm__explorer { display: block; }
    .pcdt-algorithm__map-panel { position: static; }
    .pcdt-algorithm__node,
    .pcdt-algorithm__edge { opacity: 1; }
}
