/* Domain 5 primitive styles. Reuse the .prim vocabulary in styles.css;
   only genuinely new classes belong here. Tokens only, never literal hex. */

/* ---- Budget: the window drawn as a partitioned bar ----
   The class is `bseg`, not `seg`, because `.seg` is the nav-rail button in
   styles.css and its `width:100%` is a live geometry property on an SVG rect —
   every segment stretched to the full bar and the whole budget read as one
   black block. Segment colour is categorical, one token each. */
.prim .bseg{stroke:var(--plate);stroke-width:1}
.prim .bseg.sys{fill:var(--ink-2)}
.prim .bseg.tools{fill:var(--cache)}
.prim .bseg.facts{fill:var(--good)}
.prim .bseg.hist{fill:var(--teal)}
.prim .bseg.res{fill:var(--amber)}
.prim .bseg.free{fill:var(--rule-soft)}
.prim .bseg.kept{fill:var(--teal-soft);stroke:var(--teal)}
.prim .bseg.over{fill:var(--pencil)}

/* the window's outline, and the hard 200k limit the ladder overruns */
.prim .frame{fill:none;stroke:var(--rule);stroke-width:2}
.prim .lim{fill:none;stroke:var(--pencil);stroke-width:2.4;stroke-dasharray:9 7}
.prim .axis{fill:none;stroke:var(--rule);stroke-width:2}

/* recall plotted against position — a polyline defaults to fill, which paints
   the dip solid instead of tracing it */
.prim .curve{fill:none;stroke:var(--teal);stroke-width:3}

/* measure bars: .gbar is the load-bearing part, .mute the whole call it arrived in */
.prim .gbar{fill:var(--teal)}
.prim .gbar.mute{fill:var(--rule-soft)}
