/* SoftCreator Mermaid theme classes.
 *
 * Apply in Mermaid syntax via:
 *   class NodeId grStart      // entry point of a pipeline / source
 *   class NodeId grStop       // exit point / final consumer
 *   class NodeId grProcess    // process, service, runtime component
 *   class NodeId grStore      // persistent store (DB, cache, file)
 *   class NodeId grSingleton  // singleton with serialized / shared access
 *   class subgraphId grBoundary // trust boundary / process surface (subgraph)
 *
 * Brand colors from _shared/branding/colors.css. Hex values are inlined
 * here because Mermaid copies these CSS properties onto SVG nodes and the
 * SVG renderer does not resolve --custom-property references on SVG attrs.
 */

.grStart {
    text-align: center;
    background: linear-gradient(to left, #abcc51, #74c439);
    fill:red;
    font: 13px;
    stroke:#333;
    stroke-width:4px;
}
.grStop {
    position: relative;
    background: linear-gradient(to left, #abcc51, #74c439);
}

/* Process / service / runtime - pale green fill, dark green border */
.grProcess {
    fill: #e8ffe0;
    stroke: #4a9f1c;
    stroke-width: 1.5px;
}

/* Persistent store (DB, cache, file) - neutral fill, gray border */
.grStore {
    fill: #f5f5f5;
    stroke: #64748b;
    stroke-width: 1.5px;
}

/* Singleton / shared resource with serialized access - medium green, thick border */
.grSingleton {
    fill: #79c480;
    stroke: #4a9f1c;
    stroke-width: 3px;
}

/* Trust boundary / process surface - dashed border, no fill (apply to subgraph) */
.grBoundary {
    fill: none;
    stroke: #4a9f1c;
    stroke-width: 1.5px;
    stroke-dasharray: 6 4;
}

/* Mermaid HTML labels at 15px (the themeVariables.fontSize knob is ignored
 * for htmlLabels). Padding gives Mermaid's getBoundingClientRect a buffer
 * so the last character does not clip on subpixel rounding. */
.nodeLabel,
.edgeLabel,
foreignObject .nodeLabel,
foreignObject div {
    font-size: 15px;
    font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.35;
    padding: 0 6px;
}
.cluster .nodeLabel,
.cluster-label .nodeLabel {
    font-size: 14px;
    font-weight: 500;
}
