:root{--bg:#f4f5f7;--panel:#fff;--ink:#1d2733;--muted:#5c6b7a;--line:#d8dde3;--accent:#1f5f8b;--accent-soft:#e3eef6;--warn:#b5541c;--sel:#fff4cf;--input:#fff;--chrome:#1f5f8b;--chrome-ink:#fff;--tab:#e9ecef;--subtle:#fafbfc;--soft:#eef1f4;--row-line:#eef0f2;--hover:#f2f5f8;--grid:#e5e8ec;--ok:#1e6b34;--ok-2:#4f9a6b;--ok-bg:#e2f3e6;--amber:#7a5a00;--amber-bg:#fff1cc;--bad:#a12a1f;--bad-2:#c0392b;--bad-bg:#fde3e1;--warn-bg:#fdf0e8;--procure:#8e6fb0;--loe:#b9c4cf;--heat-ink:#1d2733;color:var(--ink);background:var(--bg);font-family:Segoe UI,system-ui,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line);background:var(--input);border-radius:3px;min-width:0;padding:3px 5px}input[type=number]{text-align:right}button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:3px;padding:3px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.danger{color:var(--warn)}.est{flex-direction:column;height:100vh;display:flex}header{background:var(--chrome);color:var(--chrome-ink);align-items:center;gap:16px;padding:6px 12px;display:flex}header .brand{letter-spacing:.02em;font-size:15px;font-weight:600}header .file{gap:6px;display:flex}header button{color:var(--chrome-ink);background:0 0;border-color:#fff6}header .theme{margin-left:auto;font-size:12px}.proj{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px;padding:8px 12px;display:flex}.proj label{color:var(--muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.proj label input,.proj label select{color:var(--ink);width:150px;font-size:13px}.proj label.name input{width:320px}.proj label.sm input{width:60px}.classbar{background:var(--accent-soft);color:var(--ink);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:6px 12px;display:flex}.classbar .tot b{font-variant-numeric:tabular-nums;font-size:15px}.classbar .rng{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:8px}nav{background:var(--bg);gap:2px;padding:6px 12px 0;display:flex}nav button{background:var(--tab);border-bottom:none;border-radius:4px 4px 0 0}nav button.on{background:var(--panel);font-weight:600}main{background:var(--panel);border-top:1px solid var(--line);flex:1;min-height:0;overflow:auto}footer{color:var(--muted);background:var(--bg);border-top:1px solid var(--line);padding:3px 12px;font-size:12px}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:var(--subtle);padding:4px 6px;font-size:12px;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--row-line);padding:3px 6px}td.n,th.n{text-align:right;white-space:nowrap}td.b,.b{font-weight:600}.w{width:100%}.ev{height:100%;display:flex}.wbs{border-right:1px solid var(--line);flex-direction:column;width:300px;display:flex}.hd{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:6px 10px;font-weight:600;display:flex}.hd button{margin-left:auto}.tree{flex:1;overflow:auto}.node{cursor:pointer;gap:6px;padding:3px 8px;display:flex}.node:hover{background:var(--hover)}.node.sel{background:var(--sel)}.node .code{color:var(--muted);min-width:34px}.node .nm{flex:1}.node .amt{font-variant-numeric:tabular-nums;color:var(--muted)}.wbs .add{border-top:1px solid var(--line);gap:4px;padding:6px;display:flex}.wbs .add input{flex:1}.nodeedit{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding:6px;display:flex}.nodeedit label{align-items:center;gap:6px;display:flex}.nodeedit input,.nodeedit select{flex:1}.lines{flex-direction:column;flex:1;min-width:0;display:flex}.lines .grid{flex:1;overflow:auto}.lines tr{cursor:pointer}.lines tr.sel td{background:var(--sel)}.lines td.w{white-space:nowrap;text-overflow:ellipsis;max-width:380px;overflow:hidden}.empty{color:var(--muted);text-align:center;padding:16px}.warn{color:var(--warn)}.le{border-top:2px solid var(--accent);background:var(--subtle);max-height:50%;padding:8px 10px;overflow:auto}.le .row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.le label{color:var(--muted);flex-direction:column;font-size:11px;display:flex}.le label input,.le label select,.le label textarea{color:var(--ink);font-size:13px}.le .row label.w{flex:1;min-width:220px}.le .row label.s input{width:80px}.le .row input[type=number]{width:90px}.le .parts{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:8px;display:grid}.le fieldset{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:4px;padding:6px;display:flex}.le legend{color:var(--muted);padding:0 4px;font-size:11px}.le legend.l2{margin-top:6px}.le .r{flex-direction:row;align-items:center;gap:4px;display:flex}.le .r select{flex:1}.le .r input[type=number]{width:80px}.le .r input:not([type]){flex:1}.le .sub{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.le .src textarea{resize:vertical;min-height:44px}.libs,.sum{flex-direction:column;gap:18px;padding:12px;display:flex}.libs h3,.sum h3{margin:0 0 6px;font-size:14px}.libs input{width:100%}.libs input.id{width:70px}.libs td:not(.w) input{width:90px}.sum .two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;display:grid}.sum tr.tot td{border-top:2px solid var(--line);font-weight:600}.sum tr.off td{background:var(--warn-bg)}.hint{color:var(--muted);font-size:12px}.lines th,.lines td{white-space:nowrap}.le .parts{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.le fieldset,.le .r select{min-width:0}.le .r input[type=number]{flex:none;width:70px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.bar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}tr.grp td{background:var(--accent-soft);font-weight:600}td.in,.in{padding-left:18px}.derived{color:var(--accent);font-style:italic}.lnk{cursor:pointer}.lnk:hover{color:var(--accent);text-decoration:underline}.subnav{border-bottom:1px solid var(--line);background:0 0;gap:2px;padding:0;display:flex}.subnav button{background:var(--soft);border-bottom:none;border-radius:4px 4px 0 0}.subnav button.on{background:var(--panel);border-color:var(--accent);font-weight:600}.libs td.mem{white-space:nowrap}.libs td.mem .r{align-items:center;gap:4px;margin-bottom:2px;display:flex}.libs td.mem input.cnt{width:50px}.libs td.mem select{min-width:200px}.libs tr.sel td{background:var(--sel)}.libs td.src{color:var(--muted);white-space:nowrap;font-size:12px}.libs .parts{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px;margin-top:8px;display:grid}.libs fieldset{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:4px;min-width:0;padding:6px;display:flex}.libs fieldset legend{color:var(--muted);padding:0 4px;font-size:11px}.libs fieldset .r{align-items:center;gap:4px;display:flex}.libs fieldset .r select{flex:1;min-width:0}.libs fieldset .r input[type=number]{flex:none;width:80px}.libs fieldset label{color:var(--muted);flex-direction:column;font-size:11px;display:flex}.libs fieldset label.r{flex-direction:row;justify-content:space-between}.mats .bar input[data-k=matSearch]{width:320px}.mats .grid{max-height:calc(100vh - 330px);overflow:auto}.mats td input{width:100%}.mats td input.s{width:64px}.mats td input.m{width:110px}.mats td input.nn{width:80px}.mats td.w input{min-width:220px}.mats td.stale input{border-color:var(--warn);background:var(--warn-bg)}.takeoff{flex-direction:column;height:100%;padding:12px;display:flex}.takeoff .grid{flex:1;overflow:auto}.takeoff td{white-space:nowrap}.takeoff td input.q{width:90px}.takeoff td input.f{width:60px}.takeoff td.follows select{max-width:200px}.takeoff td.follows .r{align-items:center;gap:4px;display:flex}.takeoff tfoot td{border-top:2px solid var(--line);background:var(--panel);font-weight:600;position:sticky;bottom:0}.le .cbar{background:var(--accent-soft);border-radius:4px;margin-top:8px;padding:6px 8px}.le label .r{align-items:center;gap:4px;display:flex}.le label .r select{max-width:220px}.le .row>.sub{align-self:center}.tot2{flex-direction:column;gap:18px;padding:12px;display:flex}.tot2 .cols{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));align-items:start;gap:18px;display:grid}.tot2 h3{margin:0 0 6px;font-size:14px}.tot2 section{min-width:0}.tot2 label.r{align-items:center;gap:8px;margin:4px 0;display:flex}.tot2 label.r input{width:100px}.tot2 .r{gap:14px;margin:4px 0;display:flex}.tot2 td input{width:100%}.tot2 td input.pct{width:64px}.tot2 td.mb{white-space:nowrap;font-size:11px}.tot2 td.mb label{align-items:center;gap:2px;margin-right:6px;display:inline-flex}.tot2 td.mb input{width:auto}.tot2 .mk{max-width:1100px}.tot2 .mk td.w input{min-width:260px}.tot2 tr.sub td{border-top:1px solid var(--line);font-weight:600}.tot2 tr.tot td{border-top:2px solid var(--ink);font-size:14px;font-weight:700}.scurve{max-width:100%;display:block}.scurve text{fill:var(--muted);font-size:10px}.scurve .ax{stroke:var(--line)}.scurve .curve{fill:none;stroke:var(--accent);stroke-width:2px}.scurve .base{stroke:var(--muted);stroke-dasharray:4 3}.scurve .conf{stroke:var(--warn);stroke-dasharray:3 2}.basis{padding:12px}.basis .grid2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:12px;display:grid}.basis label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.basis textarea{resize:vertical;min-height:90px;color:var(--ink);font-size:13px}.libs table[data-k=assemblies] td:nth-child(3) input{width:150px}.sched{flex-direction:column;gap:8px;height:100%;padding:12px;display:flex}.sched .bar label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.sched .bar label input{color:var(--ink)}.sched input.s{width:64px}.sched .bar label.chk{gap:2px}.sched .facts{color:var(--muted);flex-wrap:wrap;gap:6px 18px;font-size:12px;display:flex}.sched .facts b{color:var(--ink);font-variant-numeric:tabular-nums}.sched .facts .mp{margin-left:8px}.sched .issues{background:var(--warn-bg);color:var(--warn);border-radius:4px;margin:0;padding:6px 10px 6px 26px;font-size:12px}.sched .grid{flex:1;min-height:0;overflow:auto}.sched td{white-space:nowrap}.sched td input.set{border-color:var(--accent);background:var(--accent-soft)}.sched tr.crit td:first-child{box-shadow:inset 3px 0 0 var(--bad-2)}.sched td.after{white-space:normal;max-width:280px}.sched td.after select{width:44px}.chip{background:var(--accent-soft);border-radius:10px;align-items:center;gap:2px;margin:1px 4px 1px 0;padding:0 2px 0 8px;font-size:11px;display:inline-flex}button.x{color:var(--muted);background:0 0;border:none;padding:0 4px}button.x:hover{color:var(--warn)}th.gantt,td.gantt{width:320px;min-width:320px;padding:0;position:relative}td.gantt i{border-radius:2px;height:10px;position:absolute;top:7px}td.gantt i.bar.work{background:var(--accent)}td.gantt i.bar.procure{background:var(--procure)}td.gantt i.bar.loe{background:var(--loe);height:6px;top:9px}.sched tr.crit td.gantt i.bar.work,.sched tr.crit td.gantt i.bar.procure{background:var(--bad-2)}td.gantt i.ms{background:var(--ink);border-radius:0;width:9px;height:9px;margin-left:-4px;top:7px;transform:rotate(45deg)}.sched .carried{white-space:normal;margin-top:2px}.sched .carried .chip{background:var(--soft)}.modal-back{z-index:10;background:#141e2859;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border-radius:6px;flex-direction:column;max-height:92vh;display:flex;box-shadow:0 10px 40px #00000040}.modal>header{border-bottom:1px solid var(--line);background:var(--accent-soft);color:var(--ink);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.modal>.body{flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px 12px;display:flex;overflow:auto}.modal>footer{border-top:1px solid var(--line);background:var(--bg);justify-content:flex-end;align-items:center;gap:8px;padding:8px 12px;display:flex}.modal>footer .hint{margin-right:auto}.bomdlg{width:min(1500px,96vw);height:88vh}.bomdlg .bar label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.bomdlg .bar label>input,.bomdlg .bar label>select{color:var(--ink)}.bomdlg input.s{width:60px}.bomdlg fieldset.cols{border:1px solid var(--line);border-radius:4px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 12px;padding:6px 8px;display:grid}.bomdlg fieldset.cols legend{color:var(--muted);font-size:12px}.bomdlg fieldset.cols label{color:var(--muted);justify-content:space-between;gap:6px;font-size:12px;display:flex}.bomdlg fieldset.cols select{width:140px;color:var(--ink)}.bomdlg .grid{border:1px solid var(--line);flex:1;min-height:120px;overflow:auto}.bomdlg td{white-space:nowrap}.bomdlg td select{max-width:220px}.bomdlg .st{background:var(--soft);border-radius:8px;padding:1px 6px;font-size:11px}.bomdlg .st.new{background:var(--ok-bg);color:var(--ok)}.bomdlg .st.changed{background:var(--amber-bg);color:var(--amber)}.bomdlg .st.removed{background:var(--bad-bg);color:var(--bad)}.bomdlg tr.unchanged td{color:var(--muted)}.bomdlg .old{color:var(--muted);text-decoration:line-through}.bomdlg .ruledraft{background:var(--accent-soft);border-radius:4px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.bomdlg .ruledraft input{width:240px}.bomdlg .rules{font-size:12px}.takeoff .bar .right{margin-left:auto}.cash{flex-direction:column;gap:8px;height:100%;padding:12px;display:flex}.cash .bar label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.cash .bar label>select,.cash .bar label>input{color:var(--ink)}.cash .lags{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.cash input.s{width:54px}.cash .bar .right{gap:6px;margin-left:auto;display:flex}.cash .facts{color:var(--muted);flex-wrap:wrap;gap:6px 18px;font-size:12px;display:flex}.cash .facts b{color:var(--ink);font-variant-numeric:tabular-nums}.cash .facts .tog{gap:10px;margin-left:auto;display:flex}.cash .chartwrap{overflow-x:auto}.cfchart{width:100%;min-width:700px;height:auto;display:block}.cfchart text{fill:var(--muted);font-size:10px}.cfchart .grid{stroke:var(--grid)}.cfchart .cum{fill:none;stroke:var(--accent);stroke-width:2.5px}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.cash .grid{flex:1;min-height:160px;overflow:auto}.cash td{white-space:nowrap}.cash tfoot td{border-top:2px solid var(--line);background:var(--panel);font-weight:600;position:sticky;bottom:0}.cash .chip select{background:0 0;border:none}.subnav .libfile{gap:6px;margin-left:auto;display:flex}select.cur{width:70px}.libs table[data-k=fx] input{width:110px}.libs table[data-k=fx] input.s{width:70px}.libs table[data-k=fx] input[type=checkbox]{width:auto}.le .row.codes{margin-top:6px}.le .row.codes input{width:140px}.escrates{background:var(--subtle);border-radius:4px;flex-direction:column;gap:6px;margin:4px 0;padding:6px 8px;font-size:12px;display:flex}.escrates>div{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.escrates label.r{gap:4px;margin:0}.escrates input{width:64px!important}button.link{color:var(--accent);background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.risklog{flex-direction:column;gap:8px;padding:12px;display:flex}.risklog .bar label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.risklog .bar label>input,.risklog .bar label>select{color:var(--ink)}.risklog input.m{width:170px}.risklog .facts{color:var(--muted);flex-wrap:wrap;gap:6px 18px;font-size:12px;display:flex}.risklog .facts b{color:var(--ink);font-variant-numeric:tabular-nums}.rl-top{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.heat .ht,.tornado .ht{margin-bottom:4px;font-size:12px;font-weight:600}.heat table{border-collapse:separate;border-spacing:2px;width:auto}.heat th{text-align:center;background:0 0;padding:0 3px;font-size:10px;position:static}.heat td{text-align:center;width:46px;height:30px;color:var(--heat-ink);border:none;border-radius:3px;padding:1px;font-size:10px}.heat td.lo{background:var(--ok-bg)}.heat td.md{background:var(--amber-bg)}.heat td.hi{background:var(--bad-bg)}.heat .axis{color:var(--muted);font-size:10px}.tornado{flex:1;min-width:360px}.tornado .tr{grid-template-columns:minmax(160px,260px) 1fr 44px;align-items:center;gap:6px;margin:2px 0;font-size:12px;display:grid}.tornado .nm{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tornado .barbox{background:var(--soft);border-radius:2px;height:12px;position:relative}.tornado .barbox i{background:var(--accent);border-radius:2px;position:absolute;top:0;bottom:0;left:0}.tornado .barbox i.neg{background:var(--ok-2)}.tornado .v{text-align:right;font-variant-numeric:tabular-nums}.risklog .grid{border:1px solid var(--line);max-height:300px;overflow:auto}.risklog tr{cursor:pointer}.risklog tr.sel td{background:var(--sel)}.risklog tr.closed td{color:var(--muted)}.risklog td{white-space:nowrap}.rate{background:var(--soft);border-radius:8px;padding:1px 6px;font-size:11px}.rate.lo{background:var(--ok-bg);color:var(--ok)}.rate.md{background:var(--amber-bg);color:var(--amber)}.rate.hi{background:var(--bad-bg);color:var(--bad)}.reditor{border-top:2px solid var(--accent);flex-direction:column;gap:8px;padding-top:8px;display:flex}.reditor .row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.reditor label{color:var(--muted);flex-direction:column;font-size:11px;display:flex}.reditor label input,.reditor label select,.reditor label textarea{color:var(--ink);font-size:13px}.reditor label.w{flex:1;min-width:240px}.reditor label.s input{width:80px}.reditor label.chk{flex-direction:row;align-items:center;gap:4px}.reditor .cee{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;display:grid}.reditor textarea{resize:vertical;min-height:52px}.reditor .two{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:8px;display:grid}.reditor fieldset{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:6px;min-width:0;padding:6px 8px;display:flex}.reditor legend{color:var(--muted);font-size:11px}.reditor .tri{align-items:flex-end;gap:6px;display:inline-flex}.reditor .tri input,.reditor .assess>label input{width:90px}.reditor .act{gap:4px;display:flex}.reditor .act input.w{flex:1}.reditor .wbslinks{flex-direction:column;max-height:120px;display:flex;overflow:auto}.reditor .sub{color:var(--muted);font-size:12px}.matrix{background:var(--subtle);border-radius:4px;flex-wrap:wrap;align-items:flex-end;gap:8px 14px;padding:8px;font-size:12px;display:flex}.matrix table{width:auto}.matrix input{width:90px}.matrix .warn{flex-basis:100%}.credit .cr-cols{grid-template-columns:minmax(380px,1fr) minmax(520px,1.4fr);align-items:start;gap:16px;display:grid}.credit table[data-k=rules] tr{cursor:pointer}.credit tr.sel td{background:var(--sel)}.cr-ed{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:8px;padding:8px;display:flex}.cr-ed .row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.cr-ed label{color:var(--muted);flex-direction:column;font-size:11px;display:flex}.cr-ed label.w{flex:1}.cr-ed label input,.cr-ed label select{color:var(--ink)}.cr-ed td input[type=number]{width:80px}.cr-ed td input[type=radio]{width:auto}.cr-ed textarea{min-height:40px}.seq{margin-top:14px}.seq td input[type=number]{width:80px}.sched label.steps{color:var(--muted);gap:2px;margin-left:6px;font-size:11px;display:inline-flex}.bench{flex-direction:column;gap:10px;padding:12px;display:flex}.bench section{flex-direction:column;gap:8px;display:flex}.bench .bar label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.bench td input{width:100%}.bench td input.s{width:70px}.bench td input.q{width:90px}.bench td input[type=checkbox]{width:auto}.bench td select{max-width:260px}.bench .grid{border:1px solid var(--line);max-height:calc(100vh - 330px);overflow:auto}.bench td{white-space:nowrap}.bench tr.closed td{color:var(--muted)}.bench tr.clk{cursor:pointer}.bench tr.sub td{color:var(--muted);font-size:12px}.bench .facts{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:12px;display:flex}.box .wh{stroke:var(--muted)}.box .iqr{fill:var(--accent-soft);stroke:var(--accent)}.box .med{stroke:var(--accent);stroke-width:2px}.box .est{fill:var(--bad-2)}.bench .ruledraft{background:var(--accent-soft);border-radius:4px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.bench .ruledraft input{width:220px}.bench label.r{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.revs{flex-direction:column;gap:16px;padding:12px;display:flex}.revs h3{margin:0 0 6px;font-size:14px}.revs h4{margin:10px 0 4px;font-size:13px}.revs .bar label{color:var(--muted);flex-direction:column;font-size:11px;display:flex}.revs .bar label input,.revs .bar label select{color:var(--ink)}.revs .bar label.w{flex:1;min-width:220px}.revs input.s{width:70px}.revs .bar{align-items:flex-end}.revs td{white-space:nowrap}.revs td.w{white-space:normal}.revs td.acts{gap:4px;display:flex}.revs tr.working td{background:var(--subtle)}.revs td.up{color:var(--bad)}.revs td.down{color:var(--ok)}.revs .cols2{grid-template-columns:minmax(420px,1fr) minmax(380px,1fr);align-items:start;gap:18px;display:grid}.revs tr.tot td{border-top:2px solid var(--ink);font-weight:700}.revs .grid{border:1px solid var(--line);max-height:360px;overflow:auto}.revs .st{background:var(--soft);border-radius:8px;padding:1px 6px;font-size:11px}.revs .st.added{background:var(--bad-bg);color:var(--bad)}.revs .st.removed{background:var(--ok-bg);color:var(--ok)}.revs .st.changed{background:var(--amber-bg);color:var(--amber)}.buckets .ht{margin-bottom:4px;font-size:12px;font-weight:600}.buckets .br{grid-template-columns:120px 1fr 110px;align-items:center;gap:6px;margin:3px 0;font-size:12px;display:grid}.buckets .axis{background:linear-gradient(to right, transparent calc(50% - .5px), var(--line) calc(50% - .5px), var(--line) calc(50% + .5px), transparent calc(50% + .5px));height:14px;position:relative}.buckets .axis i{border-radius:2px;position:absolute;top:1px;bottom:1px}.buckets .v{text-align:right;font-variant-numeric:tabular-nums}.trend{width:100%;max-width:760px;height:auto;margin-top:8px;display:block}.trend text{fill:var(--muted);font-size:10px}.trend .grid{stroke:var(--grid)}.trend .rng{stroke:var(--muted);stroke-width:1.5px}.trend .pt{fill:var(--accent)}.trend .line{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3}.libs .ownc{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:6px;margin-top:8px;padding:8px;font-size:12px;display:flex}.libs table.comps td input{width:100%}.libs table.comps td input[type=number]{width:90px}.libs table.comps td select{width:auto}.libs table.rtab{width:auto;min-width:280px;font-size:12px}.libs table.rtab tr.tot td{border-top:2px solid var(--line);font-weight:700}.rsets .cr-ed label{color:var(--muted);flex-direction:column;font-size:11px;display:flex}.rsets .cr-ed .row{align-items:flex-start}.catgen{border:1px solid var(--accent);background:var(--subtle);border-radius:4px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}.catgen .row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.catgen .row.end{justify-content:flex-end;align-items:center}.catgen .row.end .hint{margin-right:auto}.catgen label{color:var(--muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.catgen label input,.catgen label select{color:var(--ink);font-size:13px}.catgen label.w{flex:1;min-width:240px}.catgen input.s{width:80px}.catgen .chips{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.catgen .chip{border:1px solid var(--line);cursor:pointer;padding:1px 8px}.catgen .chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.catgen .ref{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.catgen .grid{border:1px solid var(--line);max-height:260px;overflow:auto}.catgen tr.closed td{color:var(--muted)}.catgen .facts{color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:12px;display:flex}.qed{border:1px solid var(--accent);background:var(--subtle);border-radius:4px;flex-direction:column;gap:6px;margin-top:8px;padding:8px;display:flex}.qed .row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.qed .row .right{margin-left:auto}.qed label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.qed td input{width:100%}.qed td input.s{width:70px}.qed td input.nn{width:90px}.qed tr.chosen td{background:var(--ok-bg)}.qed tr.closed td{color:var(--muted)}.mats button[data-k=quotesOpen].on{background:var(--ok-bg);border-color:var(--ok-2)}.qhist text{fill:var(--muted);font-size:10px}.bidtab td.low{background:var(--ok-bg);font-weight:600}.bidtab tfoot td{border-top:2px solid var(--line);font-weight:600}.bidtab .grid{border:1px solid var(--line);max-height:calc(100vh - 320px);overflow:auto}.le .unitmix{color:var(--warn);flex-basis:100%;align-items:center;gap:6px;font-size:11px;display:flex}.report{flex-direction:column;gap:10px;padding:12px;display:flex}.report .rgrid{grid-template-columns:minmax(420px,1fr) minmax(420px,1fr);align-items:start;gap:12px;display:grid}.report fieldset{border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;gap:6px 12px;padding:6px 10px;display:flex}.report legend{color:var(--muted);font-size:11px}.report label{color:var(--muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.report label input,.report label textarea{color:var(--ink);font-size:13px}.report label.w{flex:100%}.report label.chk{flex-direction:row;flex-basis:45%;align-items:center;gap:4px}.report .people{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.report .people fieldset{flex-flow:column}.report label.ta{grid-column:1/-1}.report textarea{resize:vertical;min-height:110px}.report img.logo{max-width:160px;max-height:40px;margin-top:4px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d151c;--panel:#151f29;--ink:#e3e9ef;--muted:#98a6b4;--line:#2c3a47;--accent:#5aa9e6;--accent-soft:#15314a;--warn:#fb923c;--sel:#3b3320;--input:#0f1821;--chrome:#0b1f3a;--chrome-ink:#fff;--tab:#1b2632;--subtle:#111a23;--soft:#1b2632;--row-line:#1f2a36;--hover:#1b2632;--grid:#2c3a47;--ok:#4ade80;--ok-2:#34d399;--ok-bg:#123524;--amber:#fbbf24;--amber-bg:#3b3320;--bad:#fb7185;--bad-2:#f87171;--bad-bg:#3f1d22;--warn-bg:#3b2416;--procure:#a78bfa;--loe:#64748b;--heat-ink:#e3e9ef;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d151c;--panel:#151f29;--ink:#e3e9ef;--muted:#98a6b4;--line:#2c3a47;--accent:#5aa9e6;--accent-soft:#15314a;--warn:#fb923c;--sel:#3b3320;--input:#0f1821;--chrome:#0b1f3a;--chrome-ink:#fff;--tab:#1b2632;--subtle:#111a23;--soft:#1b2632;--row-line:#1f2a36;--hover:#1b2632;--grid:#2c3a47;--ok:#4ade80;--ok-2:#34d399;--ok-bg:#123524;--amber:#fbbf24;--amber-bg:#3b3320;--bad:#fb7185;--bad-2:#f87171;--bad-bg:#3f1d22;--warn-bg:#3b2416;--procure:#a78bfa;--loe:#64748b;--heat-ink:#e3e9ef;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.modal-back{background:#00000073}.assist{background:var(--panel);border-left:1px solid var(--line);z-index:9;width:min(440px,95vw);color:var(--ink);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #0000002e}.assist .ah{border-bottom:1px solid var(--line);background:var(--accent-soft);align-items:center;gap:8px;padding:8px 12px;display:flex}.assist .ah .sub{color:var(--muted);flex:1;font-size:12px}.assist .lnk{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:12px}.assist .lnk:disabled{opacity:.5;cursor:default}.assist .x{cursor:pointer;color:var(--ink);background:0 0;border:0;font-size:14px}.assist .chat{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px 12px;display:flex;overflow:auto}.assist .intro p{margin:0 0 8px;font-size:13px}.assist .hint{color:var(--muted);font-size:12px}.assist .msg{font-size:13px;line-height:1.45}.assist .msg.user{background:var(--accent-soft);border-radius:10px 10px 2px;align-self:flex-end;max-width:90%;padding:7px 10px}.assist .msg.user p{white-space:pre-wrap;margin:0}.assist .msg.assistant{border-left:3px solid var(--accent);padding:2px 0 2px 10px}.assist .msg.assistant p{margin:0 0 7px}.assist .msg.assistant ul{margin:0 0 7px;padding-left:18px}.assist .msg.assistant li{margin:2px 0}.assist .msg.assistant h5{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin:8px 0 4px;font-size:12px}.assist .msg code{background:var(--bg);border-radius:3px;padding:0 4px;font-size:12px}.assist .msg.err{color:var(--warn);border-left:3px solid var(--warn);padding-left:10px}.assist .quick{border-top:1px solid var(--line);flex-wrap:wrap;gap:4px;padding:8px 12px;display:flex}.assist .quick .chip{cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:2px 8px;font-size:11px}.assist .quick .chip:hover:not(:disabled){border-color:var(--accent)}.assist .askrow{border-top:1px solid var(--line);gap:6px;padding:8px 12px 10px;display:flex}.assist textarea{resize:none;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;flex:1;padding:6px 8px;font-size:13px}.assist .primary{background:var(--accent);color:#fff;border-color:var(--accent)}.gatebar{color:var(--ink);background:var(--accent-soft);border-bottom:1px solid var(--line);justify-content:center;align-items:center;gap:14px;padding:6px 12px;font-size:13px;display:flex}.gatebar b{color:var(--accent)}.gatebar .primary{background:var(--accent);color:#fff;border-color:var(--accent);padding:3px 12px}header button.signup{color:#06131a;background:#2dd4bf;border-color:#2dd4bf}.lnk{color:var(--accent);cursor:pointer;background:0 0;border:0}.dmark{vertical-align:middle;color:#fff;width:22px;height:22px;display:inline-block}header .brand{align-items:center;gap:8px;display:flex}
