/* capacity module styles — owned by the capacity module; use the variables from css/app.css only */
.captools{align-items:center;gap:14px} .captools label{display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap} .captools label select{margin-left:0}
.caplg{margin:0;gap:12px;align-items:center} .caplg span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.caplg i{width:14px;height:10px;border-radius:3px;margin:0;border-bottom:3px solid var(--grey);background:var(--grey-l)}
.caplg i.c1{background:var(--green-l);border-color:var(--green)} .caplg i.c2{background:var(--amber-l);border-color:var(--amber)} .caplg i.c3{background:var(--red-l);border-color:var(--red)}
/* widget */
.capw{background:var(--paper);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--sh);padding:10px 12px 12px;margin:6px 0 14px;overflow-x:auto}
.caph{display:flex;align-items:center;gap:10px;margin:0 0 8px;min-height:26px;flex-wrap:wrap} .caph .sp{flex:1} .caph .seg button{padding:3px 11px;font-size:12px}
.capg{display:grid;gap:4px;min-width:calc(230px + var(--n) * 74px)}
.capr{display:grid;grid-template-columns:230px repeat(var(--n),minmax(66px,1fr));gap:4px;align-items:center}
.caphd{border-bottom:1px solid var(--rule);padding-bottom:2px;margin-bottom:2px}
.caphd .capl{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2);font-weight:700;align-self:end;padding-bottom:5px}
.caphd .capc{text-align:center;font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink3);padding:3px 0 5px;line-height:1.2} .caphd .capc b{display:block;font-family:var(--font);font-size:12px;color:var(--ink);font-weight:700} .caphd .capc span{display:block}
.caphd .capc.cur b{color:var(--indigo)}
.capl{display:flex;align-items:center;flex-wrap:wrap;gap:0 6px;min-width:0;padding-right:10px;font-size:13px;line-height:1.25}
.capl .dot{flex:none;margin-right:0} .capl .nm{font-weight:700;overflow:hidden;max-width:200px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2}   /* long cell names wrap to two lines, then clip */
.capl .sub{flex-basis:100%;font-size:11px;color:var(--ink3);padding-left:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capc{min-width:0;border-radius:7px} .capc.cur{background:var(--indigo-xl);box-shadow:0 0 0 1px var(--indigo-l)}
/* bars */
.cbar{position:relative;height:28px;border-radius:6px;background:var(--grey-l);overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:0 7px;font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--ink);transition:box-shadow .12s}
.cbar:hover{box-shadow:0 0 0 2px var(--indigo);z-index:1}
.cbar i{position:absolute;left:0;top:0;bottom:0;background:var(--grey);transition:width .3s ease}
.cbar i::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--grey)}
.cbar.c1 i{background:var(--green-l);background:color-mix(in srgb,var(--green) 30%,transparent)} .cbar.c1 i::after{background:var(--green)}
.cbar.c2 i{background:var(--amber-l);background:color-mix(in srgb,var(--amber) 38%,transparent)} .cbar.c2 i::after{background:var(--amber)}
.cbar.c3 i{background:var(--red-l);background:color-mix(in srgb,var(--red) 30%,transparent)} .cbar.c3 i::after{background:var(--red)}
.cbar em{position:absolute;right:0;top:0;bottom:0;width:10px;background:repeating-linear-gradient(135deg,var(--red) 0 2px,transparent 2px 5px)}
.cbar .cv,.cbar .ch{position:relative;z-index:1;white-space:nowrap} .cbar .cv{font-weight:700} .cbar .ch{color:var(--ink2)} .cbar .ch small{font-size:11px;color:var(--ink3)}
.cbar.zero .cv{color:var(--ink3);font-weight:500} .cbar.c3 .cv{color:var(--red)} .cbar.c0{opacity:.7}
.capw.dense .cbar{padding:0 5px;font-size:11px} .capw.dense .cbar .ch{display:none}
/* totals */
.capt{border-top:1px solid var(--rule);padding-top:6px;margin-top:2px} .capt .capl .sub{padding-left:0} .capt .cbar{height:24px;background:var(--hover)}
@media (max-width:1100px){.capr{grid-template-columns:150px repeat(var(--n),minmax(60px,1fr))} .capg{min-width:calc(150px + var(--n) * 66px)} .capl .nm{max-width:130px;-webkit-line-clamp:3} .cbar .ch{display:none}}
/* ── people: staffed-capacity ticks on the bars ── */
.cbar.pp i{z-index:0}
.cbar .mk{position:absolute;top:2px;bottom:2px;width:0;z-index:1;pointer-events:none;margin-left:-1px}
.cbar .mk.st{border-left:2px dashed var(--ink2);opacity:.75}
.cbar .mk.pp{border-left:3px solid var(--purple);border-radius:2px}
.cbar s{position:absolute;top:0;bottom:0;z-index:0;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--red) 55%,transparent) 0 2px,transparent 2px 6px)}
.cbar.pp .cv,.cbar.pp .ch{z-index:2}
.cbar.nost .ch{display:none} .cbar.nost.c3 .cv{font-size:11px}
/* legend swatches for the ticks (tools row and widget caption) */
.caplg i.lg-st,.caph i.lg-st{width:0;height:12px;border:0;border-left:2px dashed var(--ink2);border-radius:0;background:none;margin:0 2px 0 4px}
.caplg i.lg-pp,.caph i.lg-pp{width:0;height:12px;border:0;border-left:3px solid var(--purple);border-radius:1px;background:none;margin:0 2px 0 4px}
.caph i.lg-st,.caph i.lg-pp{display:inline-block;vertical-align:-2px}
.caplg i.lg-hatch{border:0;background:repeating-linear-gradient(135deg,var(--red) 0 2px,transparent 2px 5px)}
/* no home cells yet */
.capban{display:flex;align-items:center;gap:14px;flex-wrap:wrap} .capban>div{flex:1;min-width:260px}
/* hiring summary */
.caphire{background:var(--paper);border:1px solid var(--rule);border-left:5px solid var(--red);border-radius:12px;box-shadow:var(--sh);padding:12px 16px;margin:10px 0 10px}
.caphire.ok{border-left-color:var(--green)}
.caphire .chh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap} .caphire .chh b{font-size:17px;font-weight:800;letter-spacing:-.01em} .caphire .chh .faint{font-size:12px}
.caphire .chl{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.caphire .chk{font-size:12.5px;font-weight:700;color:var(--ink2);margin-right:2px}
.caphire .chi{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;padding:3px 10px;border-radius:14px;background:var(--grey-l);white-space:nowrap}
.caphire .chi .dot{margin:0} .caphire .chi b{font-variant-numeric:tabular-nums}
.caphire .chi.bad{background:var(--red-l)} .caphire .chi.bad b{color:var(--red)} .caphire .chi.ok{background:var(--green-l)} .caphire .chi.ok b{color:color-mix(in srgb,var(--green) 70%,var(--ink))}
.caphire .chs{font-size:12px;color:var(--ink2);margin-top:8px;line-height:1.5}
.caphire .chi.more{background:none;border:1px dashed var(--rule);color:var(--ink3);cursor:help}
/* R10: headcount strip folds into one line */
.caphd2{margin:0 0 12px} .caphd2>summary{cursor:pointer;font-size:13px;color:var(--ink2);padding:4px 0} .caphd2>summary b{color:var(--ink)} .caphd2[open]>summary{margin-bottom:6px}
/* headcount strip */
.caphc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}
.caphc .hcl{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2);margin-right:4px} .caphc .hcl small{text-transform:none;letter-spacing:0;font-weight:500;color:var(--ink3)}
.caphc .hc{display:inline-flex;align-items:baseline;gap:5px;font-size:12px;padding:3px 9px;border-radius:8px;border:1px solid var(--rule);background:var(--paper);white-space:nowrap;cursor:default}
.caphc .hc .dot{margin:0;align-self:center} .caphc .hc b{font-size:13.5px;font-variant-numeric:tabular-nums;margin-left:2px} .caphc .hc small{font-size:11px;color:var(--ink3);margin-left:-3px}
.caphc .hc.full b,.caphc .hc.over b{color:color-mix(in srgb,var(--green) 70%,var(--ink))} .caphc .hc.under b{color:color-mix(in srgb,var(--amber) 72%,var(--ink))} .caphc .hc.zero b{color:var(--red)}
.caphc .hc.zero{background:var(--red-l);border-color:transparent} .caphc .hc.nohome,.caphc .hc.off{background:var(--grey-l);border-style:dashed} .caphc .hc.off small{margin-left:0}
/* staffing table cells */
.cutil{font-weight:700;font-variant-numeric:tabular-nums} .cutil.c1{color:color-mix(in srgb,var(--green) 70%,var(--ink))} .cutil.c2{color:color-mix(in srgb,var(--amber) 72%,var(--ink))} .cutil.c3{color:var(--red)}
.cshort{font-weight:700;white-space:nowrap} .cshort.bad{color:var(--red)} .cshort.ok{color:color-mix(in srgb,var(--green) 70%,var(--ink))}
/* help */
.caphelp{margin:4px 0 12px} .caphelp ul{margin:8px 0 6px;padding-left:18px;line-height:1.55} .caphelp li{margin:2px 0}
.caphelp .capex{margin:6px 0 0;padding:8px 12px;background:var(--indigo-xl);border-left:3px solid var(--purple);border-radius:6px;color:var(--ink);line-height:1.5}
