/* The architecture shape (ui/arch.js): a system, drawn in the lens's colours. The frame, the key and the breaks are
   the flow's (ui/flow.css). Every width and number here is the style's (sizes and numbers, read as --ln-*). */
.ar-part { cursor: pointer; }
.ar-part .ar-shape { fill: var(--ln-land); stroke: var(--ln-line); stroke-width: var(--ln-flow-stroke); }
.ar-part .ar-lid { fill: none; stroke: var(--ln-line); stroke-width: var(--ln-flow-stroke); }
.ar-part.planned .ar-shape, .ar-part.building .ar-shape { stroke: var(--ln-muted); stroke-dasharray: var(--ln-flow-dash-scenario); }
.ar-part.down .ar-shape { stroke: var(--ln-blocked); stroke-width: var(--ln-arch-stroke-down); }
.ar-part.warn .ar-shape { stroke: var(--ln-warn); stroke-width: var(--ln-arch-stroke-warn); }
.ar-part.you .ar-shape { stroke: var(--ln-you); }
.ar-part.here .ar-shape, .ar-part:hover .ar-shape, .ar-part:focus .ar-shape { stroke: var(--ln-text); stroke-width: var(--ln-flow-stroke-lit); }
.ar-part text { fill: var(--ln-text); font-size: var(--ln-arch-text); font-family: var(--ln-font); dominant-baseline: middle; }
.ar-part.planned text, .ar-part.gone text, .ar-part.standby text { fill: var(--ln-muted); }
.ar-part.standby .ar-shape { stroke: var(--ln-muted); }
.ar-part.dim, .ar-place.dim { opacity: var(--ln-dim); }
/* Health: a dot. Up is the colour of done, down of blocked, being wired of a session at work; on standby is hollow, planned hollow and dashed. */
.ar-dot { fill: none; stroke: var(--ln-muted); stroke-width: var(--ln-flow-dot-ring); }
.ar-dot.ok { fill: var(--ln-done); stroke: none; } .ar-dot.down { fill: var(--ln-blocked); stroke: none; }
.ar-dot.warn { fill: var(--ln-warn); stroke: none; } .ar-dot.building { fill: var(--ln-session); stroke: none; }
.ar-dot.planned { stroke-dasharray: var(--ln-arch-dash-dot); } .ar-dot.gone { stroke: var(--ln-line); }
.ar-badge circle { fill: var(--ln-inner); stroke: var(--ln-line); } .ar-badge.you circle { fill: var(--ln-you); }
.ar-badge text { fill: var(--ln-text); font-weight: 700; font-size: var(--ln-flow-badge-text); font-family: var(--ln-font); text-anchor: middle; dominant-baseline: middle; }
/* Where it runs: a box around its parts, its name on its top edge. */
.ar-place { cursor: pointer; }
.ar-place-box { fill: var(--ln-inner); fill-opacity: var(--ln-arch-place-fill); stroke: var(--ln-line); stroke-width: var(--ln-rule); }
.ar-place-box.planned, .ar-place-box.building { stroke-dasharray: var(--ln-arch-dash-place); }
.ar-place-box.down { stroke: var(--ln-blocked); }
.ar-place-name { fill: var(--ln-inner); }
.ar-place:hover text { fill: var(--ln-text); }
.ar-place text { fill: var(--ln-muted); font-weight: 600; font-size: var(--ln-arch-place-text); font-family: var(--ln-font); dominant-baseline: middle; }
/* Wires: wired solid, not yet wired dashed, broken in the colour of blocked. */
.ar-wire { fill: none; stroke: var(--ln-muted); stroke-width: var(--ln-flow-stroke); }
.ar-wire.planned { stroke-dasharray: var(--ln-flow-dash-choice); stroke-opacity: var(--ln-arch-planned-wire); }
.ar-wire.standby { stroke-opacity: var(--ln-arch-standby); } .ar-head.standby { fill-opacity: var(--ln-arch-standby); }
.ar-wire.broken { stroke: var(--ln-blocked); stroke-width: var(--ln-arch-stroke-warn); }
.ar-wire.lit { stroke: var(--ln-text); stroke-width: var(--ln-flow-stroke-lit); }
.ar-head { fill: var(--ln-muted); } .ar-head.broken { fill: var(--ln-blocked); } .ar-head.lit { fill: var(--ln-text); }
.ar-hit { fill: none; stroke: transparent; stroke-width: var(--ln-arch-hit); cursor: default; }
.ar-break rect { fill: var(--ln-sea); } .ar-break path { stroke: var(--ln-muted); stroke-width: var(--ln-flow-stroke); }
.ar-says rect { fill: var(--ln-sea); stroke: var(--ln-line); stroke-width: var(--ln-arch-says-stroke); }
.ar-says text { fill: var(--ln-muted); font-size: var(--ln-arch-says-text); font-family: var(--ln-font); text-anchor: middle; dominant-baseline: middle; }
.ar-says.broken text { fill: var(--ln-blocked); }
.ar-tally { display: flex; gap: var(--ln-grid-gap); align-items: center; min-width: 0; overflow: hidden; }
