:root{--paper:#fbfbf9;--desk:#e6eaee;--panel:#f1f3f5;--ink:#1c2b3f;--ink-2:#5a6978;--ink-3:#8a96a3;--accent:#b8321a;--line:#c8d0d8;--line-2:#e1e6eb;--grid-minor:#1c2b3f09;--grid-major:#1c2b3f13;--canvas-bg:var(--desk);--canvas-paper:var(--paper);--canvas-ink:var(--ink);--diff-add:#2e7d4f;--diff-del:var(--accent);--diff-same:var(--ink-3);--font-ui:-apple-system, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;--font-data:"B612 Mono", ui-monospace, Menlo, monospace;--fs-body:13px;--fs-table:12.5px;--fs-min:12px;--row-h:28px;--sidebar-w:200px;--topbar-h:44px;--stagebar-h:40px;--radius:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--desk);color:var(--ink);font:var(--fs-body) / 1.45 var(--font-ui);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:1px}input,select,textarea{font:inherit;color:var(--ink)}img{display:block}.mono{font-family:var(--font-data);font-size:var(--fs-min);letter-spacing:0}.num{font-family:var(--font-data);font-size:var(--fs-min);font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.acc{color:var(--accent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:100vh;display:grid;overflow:hidden}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.brand{border-bottom:1px solid var(--line-2);padding:14px 16px 12px}.brand b{letter-spacing:.5px;font-size:15px;font-weight:600;display:block}.brand small{color:var(--ink-2);font-size:var(--fs-min);margin-top:2px;display:block}.nav{flex:1;min-height:0;padding:8px 0 0;overflow:auto}.nav .grp{color:var(--ink-3);font-size:var(--fs-min);align-items:center;gap:8px;padding:10px 16px 4px;display:flex}.nav .grp:after{content:"";border-top:1px solid var(--line-2);flex:1}.nav a{color:var(--ink);border-left:3px solid #0000;justify-content:space-between;align-items:center;padding:5px 16px 5px 24px;line-height:1.3;display:flex}.nav a:hover{background:color-mix(in srgb, var(--panel) 70%, var(--line) 30%)}.nav a.on{border-left-color:var(--ink);background:var(--paper);font-weight:600}.nav a .cnt{font-family:var(--font-data);color:var(--ink-2);font-size:11.5px;font-weight:400}.nav a .cnt.acc{color:var(--accent)}.side .me{border-top:1px solid var(--line-2);font-size:var(--fs-min);align-items:center;gap:10px;padding:10px 16px;display:flex}.side .me .av{background:var(--ink);width:24px;height:24px;color:var(--paper);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.side .me .who{flex:1;min-width:0;line-height:1.3}.side .me .who span{display:block}.side .me .out{color:var(--ink-3);font-size:var(--fs-min)}.side .me .out:hover{color:var(--ink)}.main{background:var(--paper);flex-direction:column;min-width:0;height:100vh;min-height:0;display:flex}.screen{flex-direction:column;flex:1;min-height:0;display:flex}.top{height:var(--topbar-h);border-bottom:1px solid var(--line);background:var(--paper);flex:none;align-items:center;gap:18px;padding:0 20px;display:flex}.top .crumb{font-size:var(--fs-body);white-space:nowrap;align-items:center;gap:8px;display:flex}.top .crumb .sep{color:var(--line)}.top .crumb b{font-weight:600}.top .meta{color:var(--ink-2);font-size:var(--fs-min);white-space:nowrap;align-items:center;gap:14px;display:flex}.top .meta .mono{color:var(--ink)}.top .spacer{flex:1}.tag{border:1px solid var(--line);border-radius:var(--radius);font-size:var(--fs-min);color:var(--ink-2);white-space:nowrap;padding:1px 7px}.stages{height:var(--stagebar-h);border-bottom:1px solid var(--line);background:var(--paper);flex:none;align-items:stretch;padding:0 20px;display:flex}.stage{font-size:var(--fs-table);color:var(--ink-3);white-space:nowrap;align-items:center;gap:8px;margin-right:22px;padding:0 22px 0 0;display:flex;position:relative}.stage:after{content:"";border-right:1px solid var(--line-2);position:absolute;top:12px;bottom:12px;right:0;transform:skew(-18deg)}.stage:last-of-type:after{display:none}.stage .dot{border:1.5px solid var(--line);background:var(--paper);border-radius:50%;width:8px;height:8px}.stage.done{color:var(--ink)}.stage.done .dot{background:var(--ink);border-color:var(--ink)}.stage.cur{color:var(--accent);font-weight:600}.stage.cur .dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, var(--paper))}.stage .k{font-family:var(--font-data);opacity:.75;font-size:11px}.stage a{align-items:center;gap:8px;display:inline-flex}.stages .sr{font-size:var(--fs-min);color:var(--ink-2);white-space:nowrap;align-items:center;gap:10px;margin-left:auto;display:flex}.btn{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);height:28px;color:var(--ink);font-size:var(--fs-table);white-space:nowrap;align-items:center;gap:6px;padding:0 12px;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-2)}.btn.ink{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn.ink:hover{background:color-mix(in srgb, var(--ink) 85%, black)}.btn.acc{background:var(--accent);border-color:var(--accent);color:var(--paper)}.btn.acc:hover{background:color-mix(in srgb, var(--accent) 85%, black)}.btn.sm{height:24px;font-size:var(--fs-min);padding:0 9px}.btn.ghost{border-color:#0000}.btn.ghost:hover{background:color-mix(in srgb, var(--panel) 60%, var(--line-2))}.btn.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}.chip{border:1px solid var(--line);border-radius:var(--radius);height:20px;font-size:var(--fs-min);color:var(--ink-2);background:var(--paper);white-space:nowrap;align-items:center;gap:5px;padding:0 7px;display:inline-flex}.chip.acc{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--paper))}.chip.ink{border-color:var(--ink);color:var(--ink)}.chip.est{color:var(--accent);border-style:dashed;border-color:var(--accent)}.chip.xs{height:18px}.field{font-size:var(--fs-min);color:var(--ink-2);flex-direction:column;gap:4px;display:flex}.field>span{display:block}.input,.select,.textarea{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);height:28px;font-size:var(--fs-table);color:var(--ink);width:100%;padding:0 8px}.textarea{resize:vertical;height:auto;min-height:64px;padding:6px 8px;line-height:1.45}.input:hover,.select:hover,.textarea:hover{border-color:var(--ink-2)}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);outline:none}.input.mono{font-family:var(--font-data)}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.check{font-size:var(--fs-table);color:var(--ink);align-items:center;gap:6px;display:inline-flex}.check input{accent-color:var(--ink);width:14px;height:14px;margin:0}.form-row{gap:12px;display:grid}.form-row.c2{grid-template-columns:1fr 1fr}.form-row.c3{grid-template-columns:1fr 1fr 1fr}.form-row.c4{grid-template-columns:repeat(4,1fr)}.err{color:var(--accent);font-size:var(--fs-min)}table.t{border-collapse:collapse;width:100%;font-size:var(--fs-table)}table.t th{color:var(--ink-2);text-align:left;border-bottom:1px solid var(--ink);white-space:nowrap;font-weight:500;font-size:var(--fs-min);padding:5px 10px}table.t td{border-bottom:1px solid var(--line-2);height:var(--row-h);vertical-align:middle;white-space:nowrap;padding:4px 10px}table.t td.wrap{white-space:normal}table.t td.r,table.t th.r{text-align:right}table.t tbody tr:hover td{background:color-mix(in srgb, var(--panel) 60%, var(--paper))}table.t td .num,table.t th.num{font-variant-numeric:tabular-nums}table.t tfoot td{border-top:1px solid var(--ink);border-bottom:0;font-weight:600}table.t tr.sel td{background:color-mix(in srgb, var(--panel) 70%, var(--line-2))!important}table.t tr.low td{background:color-mix(in srgb, var(--accent) 10%, var(--paper))!important}table.t tr.clickable{cursor:pointer}table.t td .inline-input{border-radius:var(--radius);height:22px;font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink);background:0 0;border:1px solid #0000;width:72px;padding:0 4px}table.t td .inline-input.text{font-family:var(--font-ui);font-size:var(--fs-table);width:100%;min-width:90px}table.t td .inline-input.r{text-align:right}table.t td .inline-input:hover{border-color:var(--line)}table.t td .inline-input:focus{border-color:var(--ink);background:var(--paper);outline:none}table.t td select.inline-input{width:auto}.t-empty{color:var(--ink-3);font-size:var(--fs-table);padding:18px 0}.t-scroll{min-height:0;overflow:auto}.st{font-size:var(--fs-min);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.st:before{content:"";background:var(--ink-3);border-radius:50%;flex:none;width:6px;height:6px}.st.wait:before{background:var(--accent)}.st.pub:before,.st.run:before{background:var(--ink)}.st.fail{color:var(--accent)}.st.fail:before{background:var(--accent)}.sec{padding:16px 24px 6px 0}.sec h2{align-items:baseline;gap:10px;margin-bottom:10px;font-size:13.5px;font-weight:600;display:flex}.sec h2 .cnt{font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink-2);font-weight:400}.sec h2 .more{font-weight:400;font-size:var(--fs-min);color:var(--ink-2);margin-left:auto}.sec h2 .more:hover{color:var(--ink)}.sec .hint{color:var(--ink-3);font-size:var(--fs-min);padding:6px 0}.dash{flex:1;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 440px;min-height:0;display:grid}.dash .hdr{border-bottom:1px solid var(--line-2);grid-column:1/3;justify-content:space-between;align-items:flex-end;padding:22px 24px 14px;display:flex}.dash .hdr h1{letter-spacing:.5px;font-size:18px;font-weight:600}.dash .hdr p{color:var(--ink-2);font-size:var(--fs-table);margin-top:4px}.dash .colL{border-right:1px solid var(--line-2);min-height:0;padding:0 0 0 24px;overflow:auto}.dash .colR{min-height:0;padding:0 24px 0 20px;overflow:auto}.dash .colR .sec{padding-right:0}.queue{border-top:1px solid var(--ink)}.queue .q{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);grid-template-columns:120px minmax(0,1fr) 160px 90px;align-items:center;padding:7px 0;display:grid}.queue .q>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.queue .q .k{color:var(--accent);font-weight:600}.queue .q .k .n{font-family:var(--font-data);font-size:var(--fs-min);margin-left:6px}.queue .q .who{color:var(--ink-2)}.queue .q .act{text-align:right}.queue .q.sub .k{color:#0000}.queue .empty{color:var(--ink-3);font-size:var(--fs-table);padding:12px 0}.task{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;margin-bottom:8px;padding:10px 12px;display:grid}.task .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.task .bar{background:var(--line-2);grid-column:1/3;height:6px;position:relative}.task .bar i{background:var(--ink);position:absolute;top:0;bottom:0;left:0}.task .bar i:after{content:"";background:var(--ink);width:1px;height:12px;position:absolute;top:-3px;right:0}.task .bar.idle i{background:var(--ink-3);width:30%!important}.task .bar.fail i,.task .bar.fail i:after{background:var(--accent)}.task .sub{color:var(--ink-2);font-size:var(--fs-min);grid-column:1/3;justify-content:space-between;gap:12px;display:flex}.task .sub>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.notice{border-bottom:1px solid var(--line-2);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.notice .big{font-family:var(--font-data);min-width:48px;padding-top:2px;font-size:22px;line-height:1}.notice .big.acc{color:var(--accent)}.notice .txt{flex:1}.notice .txt b{font-weight:600;display:block}.notice .txt span{color:var(--ink-2);font-size:var(--fs-min)}.prop{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);grid-template-columns:72px minmax(0,1fr) auto;align-items:start;gap:10px;padding:7px 0;display:grid}.prop .id{font-family:var(--font-data);color:var(--ink-2);padding-top:2px;font-size:11.5px}.prop .d{color:var(--ink-2);font-size:var(--fs-min);margin-top:2px}.upload{border:1.5px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--ink-2);font-size:var(--fs-table);background:var(--panel);cursor:pointer;margin-top:14px;padding:18px}.upload b{color:var(--ink);margin-bottom:4px;font-weight:600;display:block}.upload.over,.upload:hover{border-color:var(--ink)}.upload.big{margin-top:0;padding:36px 18px}.later{color:var(--ink-3);font-size:var(--fs-min);padding:8px 0 12px}.page{flex:1;min-height:0;padding:0 24px 24px;overflow:auto}.page .hdr{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:4px;padding:22px 0 14px;display:flex}.page .hdr h1{letter-spacing:.5px;font-size:18px;font-weight:600}.page .hdr p{color:var(--ink-2);font-size:var(--fs-table);margin-top:4px}.filters{align-items:center;gap:8px;padding:12px 0;display:flex}.filters .input,.filters .select{width:auto}.filters .input{width:260px}.filters .cnt{color:var(--ink-2);font-size:var(--fs-min);margin-left:auto}.narrow{max-width:760px}.kvlist{font-size:var(--fs-table);grid-template-columns:120px minmax(0,1fr);gap:0 16px;display:grid}.kvlist>span{border-bottom:1px solid var(--line-2);padding:5px 0}.kvlist>span:nth-child(odd){color:var(--ink-2)}.actions{align-items:center;gap:8px;display:flex}.overview{flex:1;grid-template-columns:minmax(0,1fr) 440px;min-height:0;display:grid}.overview .colL{border-right:1px solid var(--line-2);min-height:0;padding:0 24px;overflow:auto}.overview .colR{min-height:0;padding:0 24px 0 20px;overflow:auto}.overview .colR .sec{padding-right:0}.runs{flex-wrap:wrap;gap:8px;padding:4px 0 8px;display:flex}.three{flex:1;grid-template-columns:232px minmax(0,1fr) 400px;min-height:0;display:grid}.left{border-right:1px solid var(--line);background:var(--paper);flex-direction:column;min-height:0;display:flex}.ph{border-bottom:1px solid var(--line-2);height:32px;font-size:var(--fs-table);white-space:nowrap;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-weight:600;display:flex}.ph .mono{color:var(--ink-2);text-overflow:ellipsis;font-weight:400;overflow:hidden}.thumbs{border-bottom:1px solid var(--line-2);grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;display:grid}.thumb{text-align:left;position:relative}.thumb .pic{aspect-ratio:1.414;border:1px solid var(--line);background:var(--paper);border-radius:1px;overflow:hidden}.thumb .pic img{object-fit:cover;width:100%;height:100%}.thumb.on .pic{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.thumb .n{font-family:var(--font-data);color:var(--ink-2);margin-top:3px;font-size:11px;display:block}.pages{border-bottom:1px solid var(--line-2);font-size:var(--fs-min);padding:8px 12px 10px}.pages .row{color:var(--ink-2);align-items:center;gap:6px;margin-bottom:6px;display:flex}.pages .strip{grid-template-columns:repeat(10,1fr);gap:3px;display:grid}.pages .strip button{border:1px solid var(--line);background:var(--paper);border-radius:0;height:14px;display:block}.pages .strip button.on{background:var(--ink);border-color:var(--ink)}.pages .strip button.mark{border-color:var(--accent)}.vt{flex:1;min-height:0;padding:8px 12px;overflow:auto}.vt .v{font-size:var(--fs-table);text-align:left;width:100%;padding:6px 0 6px 20px;display:block;position:relative}.vt .v:before{content:"";border-left:1px solid var(--line);position:absolute;top:0;bottom:0;left:5px}.vt .v:after{content:"";background:var(--paper);border:1.5px solid var(--ink-2);border-radius:50%;width:7px;height:7px;position:absolute;top:12px;left:2px}.vt .v:first-child:before{top:12px}.vt .v:last-child:before{height:12px;bottom:auto}.vt .v.cur:after{background:var(--ink);border-color:var(--ink)}.vt .v.ghost:after{border-style:dashed;border-color:var(--ink-3)}.vt .v.ghost{color:var(--ink-3)}.vt .v .vn{font-family:var(--font-data);font-size:var(--fs-min);margin-right:6px;font-weight:700}.vt .v .vd{color:var(--ink-2);font-size:var(--fs-min);margin-top:1px;display:block}.vt .v .tag{vertical-align:1px;margin-left:6px;padding:0 4px;font-size:11px}.center{background:var(--canvas-bg);flex-direction:column;min-width:0;min-height:0;display:flex}.tools{background:var(--paper);border-bottom:1px solid var(--line);white-space:nowrap;flex:none;align-items:center;gap:6px;height:36px;padding:0 12px;display:flex}.tools .sep{background:var(--line);width:1px;height:18px;margin:0 6px}.tools .zoom{font-size:var(--fs-min);color:var(--ink-2);align-items:center;gap:6px;margin-left:auto;display:flex}.canvas{flex:1;place-items:center;min-height:0;padding:18px;display:grid;position:relative;overflow:auto}.canvas .sheet{background:var(--canvas-paper);box-shadow:0 1px 2px color-mix(in srgb, var(--ink) 18%, transparent), 0 6px 18px color-mix(in srgb, var(--ink) 10%, transparent);flex:none;position:relative}.canvas .sheet img{width:100%;height:100%}.canvas .sheet .frame{border:1.4px solid var(--canvas-ink);pointer-events:none;position:absolute;inset:8px}.canvas .sheet .frame2{border:.6px solid var(--canvas-ink);pointer-events:none;position:absolute;inset:14px}.canvas .sheet.grid{background-image:linear-gradient(to right, var(--grid-major) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-major) 1px, transparent 1px), linear-gradient(to right, var(--grid-minor) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-minor) 1px, transparent 1px);background-position:7px 7px;background-size:40px 40px,40px 40px,8px 8px,8px 8px}.canvas .empty{color:var(--ink-2);font-size:var(--fs-table);text-align:center;max-width:420px}.canvas .empty b{color:var(--ink);margin-bottom:4px;font-weight:600;display:block}.canvas .status{font-size:var(--fs-min);color:var(--ink-2);pointer-events:none;gap:14px;display:flex;position:absolute;bottom:10px;left:12px}.canvas .status .mono{color:var(--ink)}.right{border-left:1px solid var(--line);background:var(--paper);flex-direction:column;min-height:0;display:flex}.right .half{flex-direction:column;min-height:0;display:flex}.right .half.ai{border-bottom:1px solid var(--line);flex:none;padding-bottom:10px}.right .half.chat{flex:1;min-height:0}.sug{padding:0 12px}.sug .s{border-bottom:1px solid var(--line-2);padding:9px 0}.sug .s .t{font-size:var(--fs-table);text-align:left;align-items:flex-start;gap:8px;width:100%;line-height:1.45;display:flex}.sug .s .t .ix{font-family:var(--font-data);color:var(--ink-2);min-width:12px;padding-top:1px;font-size:11.5px}.sug .s .t b{font-weight:600}.sug .s .t .tg{flex:none;margin-left:auto}.sug .s .body{font-size:var(--fs-min);color:var(--ink-2);margin:6px 0 0 20px;line-height:1.5}.sug .s .body .ev{border-left:2px solid var(--line);background:var(--panel);margin:6px 0;padding:4px 8px}.sug .s .acts{gap:6px;margin:8px 0 0 20px;display:flex}.tbc{font-size:var(--fs-min);color:var(--ink-2);padding:8px 12px 0}.tbc b{color:var(--ink);font-weight:600}.tbc ul{margin-top:4px}.tbc li,.warn li{gap:8px;padding:2px 0;display:flex}.tbc li:before,.warn li:before{content:"TBC";font-family:var(--font-data);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);flex:none;height:16px;padding:0 3px;font-size:10.5px;line-height:14px}.warn li:before{content:"WARN"}.msgs{min-height:0;font-size:var(--fs-table);flex-direction:column;flex:1;gap:10px;padding:10px 12px;display:flex;overflow:auto}.msg{max-width:92%;line-height:1.5}.msg.u{background:var(--ink);color:var(--paper);border-radius:3px 3px 0;align-self:flex-end;padding:7px 10px}.msg.s{align-self:flex-start;width:100%;max-width:100%}.msg.s .who{color:var(--ink-3);margin-bottom:4px;font-size:11.5px}.plan{border:1px solid var(--ink);border-radius:var(--radius);overflow:hidden}.plan .ph2{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 10px;font-weight:600;display:flex}.plan .ph2 .mono{color:var(--ink-2);margin-left:auto;font-weight:400}.plan .rows{padding:4px 0}.plan .r{font-size:var(--fs-table);grid-template-columns:72px minmax(0,1fr);gap:8px;padding:4px 10px;display:grid}.plan .r .k{color:var(--ink-2)}.plan .pf{border-top:1px solid var(--line-2);background:var(--paper);gap:6px;padding:8px 10px;display:flex}.plan .pf .hint{font-size:var(--fs-min);color:var(--ink-3);align-self:center;margin-left:auto}.compose{border-top:1px solid var(--line);padding:8px 12px 10px}.compose .box{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);flex-direction:column;gap:6px;min-height:60px;padding:6px 8px;display:flex}.compose .box:focus-within{border-color:var(--ink)}.compose textarea{resize:none;font:var(--fs-table) / 1.45 var(--font-ui);color:var(--ink);background:0 0;border:0;flex:1;height:30px;padding:0}.compose textarea::placeholder{color:var(--ink-3)}.compose .ft{font-size:var(--fs-min);color:var(--ink-3);justify-content:space-between;align-items:center;margin-top:6px;display:flex}.pending{font-size:var(--fs-min);color:var(--ink-3);align-items:center;gap:8px;padding:10px 12px;display:flex}.pending:before{content:"";border:1px dashed var(--ink-3);border-radius:50%;width:6px;height:6px}.quote{flex:1;grid-template-columns:minmax(0,1fr) 380px;min-height:0;display:grid}.quote .body{flex-direction:column;min-width:0;min-height:0;display:flex}.qbar{border-bottom:1px solid var(--line);background:var(--paper);white-space:nowrap;flex:none;align-items:center;gap:10px;height:40px;padding:0 20px;display:flex}.qbar .tabs{gap:2px;margin-right:8px;display:flex}.qbar .tabs button{height:40px;color:var(--ink-2);font-size:var(--fs-body);border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 12px}.qbar .tabs button.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.qbar .sel{border:1px solid var(--line);border-radius:var(--radius);height:28px;font-size:var(--fs-table);background:var(--paper);align-items:center;gap:6px;padding:0 10px;display:inline-flex}.qbar .prof{font-size:var(--fs-min);color:var(--ink-2)}.qbar .r{align-items:center;gap:8px;margin-left:auto;display:flex}.qsplit{flex:1;grid-template-rows:minmax(0,auto) minmax(0,1fr);min-height:0;display:grid}.qsplit.one{grid-template-rows:minmax(0,1fr)}.qblk{flex-direction:column;min-height:0;padding:14px 20px 0;display:flex}.qblk h3{flex:none;align-items:baseline;gap:10px;margin-bottom:8px;font-size:13.5px;font-weight:600;display:flex}.qblk h3 .muted{font-weight:400;font-size:var(--fs-min)}.qblk h3 .acts{gap:6px;margin-left:auto;display:flex}.qblk .t-scroll{flex:0 auto}td.price .pv{border-bottom:1px dotted var(--ink-3);align-items:center;gap:6px;display:inline-flex}td.price .pv .src{background:var(--ink-2);border-radius:1px;width:6px;height:6px;display:inline-block}td.price .pv .src.est{border:1px dashed var(--accent);background:0 0}td.price .pv .src.crawl{background:var(--ink)}td.price .pv .src.sample{background:var(--ink-3)}td.price .pv .src.manual{background:var(--line)}.qlegend{font-size:var(--fs-min);color:var(--ink-2);flex:none;gap:14px;padding:8px 0;display:flex}.qlegend i{vertical-align:-1px;border-radius:1px;width:8px;height:8px;margin-right:5px;display:inline-block}.drawer{border-left:1px solid var(--line);background:var(--paper);min-height:0;box-shadow:-6px 0 18px color-mix(in srgb, var(--ink) 6%, transparent);flex-direction:column;display:flex}.drawer .dh{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;height:40px;padding:0 14px;font-weight:600;display:flex}.drawer .dh .x{color:var(--ink-2);margin-left:auto;font-size:16px;line-height:1}.drawer .item{border-bottom:1px solid var(--line-2);padding:12px 14px}.drawer .item .nm{font-weight:600}.drawer .item .mono{color:var(--ink-2);margin-top:2px;display:block}.drawer .body{flex:1;min-height:0;overflow:auto}.kv{padding:6px 14px}.kv .r{font-size:var(--fs-table);border-bottom:1px solid var(--line-2);grid-template-columns:96px minmax(0,1fr);gap:10px;padding:5px 0;display:grid}.kv .r .k{color:var(--ink-2)}.drawer .used{font-size:var(--fs-min);color:var(--ink-2);padding:10px 14px}.drawer .used b{color:var(--ink);font-weight:600}.drawer .df{border-top:1px solid var(--line);gap:8px;margin-top:auto;padding:10px 14px;display:flex}.sld{flex:1;grid-template-columns:minmax(0,1fr) 760px;min-height:0;display:grid}.sld .orig{background:var(--canvas-bg);border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.sld .orig>.center{flex:1;min-height:0}.sld .orig .tb{z-index:2;align-items:center;gap:6px;display:flex;position:absolute;top:10px;left:12px}.sld .orig .tb .sep{background:var(--line);width:1px;height:18px;margin:0 4px}.sld .orig .cap{font-size:var(--fs-min);color:var(--ink-2);pointer-events:none;position:absolute;bottom:10px;left:12px}.sld .tbl{background:var(--paper);flex-direction:column;min-height:0;display:flex}.sld .tbl .h{border-bottom:1px solid var(--line);white-space:nowrap;flex:none;align-items:center;gap:10px;height:40px;padding:0 16px;display:flex}.sld .tbl .h b{font-weight:600}.sld .tbl .h .r{gap:8px;margin-left:auto;display:flex}.cabs{flex-wrap:wrap;flex:none;gap:2px;padding:8px 16px 0;display:flex}.cabs button{font-size:var(--fs-min);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-2);background:var(--paper);padding:2px 8px}.cabs button.on{border-color:var(--ink);color:var(--ink);background:var(--paper);font-weight:600}.cabs button .lowc{color:var(--accent);font-family:var(--font-data);margin-left:4px;font-size:11px}.sld .tbl .wrap{flex:1;min-height:0;padding:10px 16px;overflow:auto}.conf{font-family:var(--font-data);align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.conf i{background:var(--line-2);width:36px;height:5px;display:inline-block;position:relative}.conf i:after{content:"";width:var(--w);background:var(--ink-2);position:absolute;top:0;bottom:0;left:0}tr.low .conf i:after{background:var(--accent)}.warn{font-size:var(--fs-min);color:var(--ink-2);flex:none;max-height:120px;padding:0 16px 10px;overflow:auto}.warn b{color:var(--ink)}.warn ul{margin-top:4px}.warn li{border-bottom:1px solid var(--line-2);padding:3px 0}.sld .foot{border-top:1px solid var(--line);font-size:var(--fs-min);color:var(--ink-2);flex:none;align-items:center;gap:8px;margin-top:auto;padding:10px 16px;display:flex}.sld .foot .r{gap:8px;margin-left:auto;display:flex}.design{flex:1;grid-template-columns:minmax(0,1fr) 400px;min-height:0;display:grid}.design .main-col{min-height:0;padding:0 24px 24px;overflow:auto}.design .side-col{border-left:1px solid var(--line);flex-direction:column;min-height:0;display:flex;overflow:auto}.asm{border-top:1px solid var(--ink);padding:10px 0 14px}.asm .hd{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.asm .hd b{font-size:13.5px;font-weight:600}.asm .hd .meta{color:var(--ink-2);font-size:var(--fs-min)}.asm .hd .meta .mono{color:var(--ink)}.asm .bus{font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink-2);margin-bottom:8px;line-height:1.5}.secs{flex-wrap:wrap;gap:8px;display:flex}.seccard{border:1px solid var(--line);border-radius:var(--radius);flex:190px;min-width:190px;max-width:320px;padding:8px 10px}.seccard .id{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.seccard .id b{font-family:var(--font-data);font-size:var(--fs-min);font-weight:700}.seccard .id .chip{margin-left:auto}.seccard .dims{font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink);margin-bottom:6px}.seccard .dims span{color:var(--ink-3)}.seccard ul li{font-size:var(--fs-min);border-top:1px solid var(--line-2);justify-content:space-between;gap:8px;padding:2px 0;display:flex}.seccard ul li .nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.seccard ul li .nm.spare{color:var(--ink-3)}.seccard ul li .mono{flex:none}.seccard .more{color:var(--ink-3);padding-top:2px;font-size:11px}.timeline{max-width:820px;padding:8px 0}.timeline .v{padding:8px 0 8px 20px}.timeline .v .vd{gap:10px;display:flex}.timeline .kind{min-width:36px;color:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);text-align:center;margin-right:6px;padding:0 4px;font-size:11px;display:inline-block}.login{background:var(--desk);place-items:center;min-height:100vh;display:grid}.login .card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:360px;padding:24px 24px 20px}.login .card .brand{margin-bottom:14px;padding:0 0 14px}.login form{flex-direction:column;gap:12px;display:flex}.login .foot{color:var(--ink-3);font-size:var(--fs-min);margin-top:10px}.tray{background:var(--paper);border:1px solid var(--ink);border-radius:var(--radius);width:340px;box-shadow:0 4px 14px color-mix(in srgb, var(--ink) 18%, transparent);z-index:50;font-size:var(--fs-min);position:fixed;bottom:16px;right:16px}.tray .th{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:6px 10px;font-weight:600;display:flex}.tray .th .x{color:var(--ink-2);margin-left:auto}.tray .it{border-bottom:1px solid var(--line-2);padding:6px 10px}.tray .it .nm{justify-content:space-between;gap:8px;display:flex}.tray .it .nm span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tray .it .bar{background:var(--line-2);height:4px;margin-top:4px;position:relative}.tray .it .bar i{background:var(--ink);position:absolute;top:0;bottom:0;left:0}.tray .it.fail .bar i{background:var(--accent)}.tray .it .msg{color:var(--ink-2);margin-top:3px}.tray .it.fail .msg{color:var(--accent)}.dropmask{z-index:60;background:color-mix(in srgb, var(--ink) 40%, transparent);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.dropmask div{background:var(--paper);border:1.5px dashed var(--ink);padding:18px 28px;font-weight:600}.toasts{z-index:70;flex-direction:column;gap:6px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);border-radius:var(--radius);font-size:var(--fs-min);box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 25%, transparent);padding:6px 12px}.toast.err{background:var(--accent)}.placeholder{padding:24px}.placeholder h1{margin-bottom:6px;font-size:18px;font-weight:600}.placeholder p{color:var(--ink-2)}@media (width<=1440px){.dash,.overview{grid-template-columns:minmax(0,1fr) 360px}.three{grid-template-columns:200px minmax(0,1fr) 320px}.quote{grid-template-columns:minmax(0,1fr) 320px}.sld{grid-template-columns:minmax(0,1fr) 620px}.design{grid-template-columns:minmax(0,1fr) 320px}}@media (prefers-reduced-motion:no-preference){.task .bar.live i:after{animation:1.2s steps(2,end) infinite blink}@keyframes blink{to{opacity:0}}}.sld .tbl .wrap table.t th,.sld .tbl .wrap table.t td{padding-left:6px;padding-right:6px}.sld .tbl .wrap .conf i{width:28px}.design .side-col table.t th,.design .side-col table.t td{padding-left:6px;padding-right:6px}.design .side-col table.t td{white-space:normal}@media (width<=1440px){.hide-narrow{display:none!important}}.tools{min-width:0;overflow:hidden}.tools>*{flex:none}.tools .info{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-min);flex:auto;overflow:hidden}.tools .zoom{flex:none}.canvas .sheet.selecting{cursor:crosshair;-webkit-user-select:none;user-select:none}.canvas .sheet.selecting img{pointer-events:none}.canvas .sheet .selrect{border:1.4px dashed var(--accent);background:color-mix(in srgb, var(--accent) 5%, transparent);pointer-events:none;box-sizing:border-box;position:absolute}.canvas .sheet .selrect .h{background:var(--paper);border:1.4px solid var(--accent);width:7px;height:7px;position:absolute}.canvas .sheet .selrect .h.tl{top:-4px;left:-4px}.canvas .sheet .selrect .h.tr{top:-4px;right:-4px}.canvas .sheet .selrect .h.bl{bottom:-4px;left:-4px}.canvas .sheet .selrect .h.br{bottom:-4px;right:-4px}.canvas .sheet .hit{border:1px solid var(--accent);pointer-events:none;box-sizing:border-box;position:absolute}.canvas .sheet .hit span{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font:10.5px/14px var(--font-data);color:var(--accent);background:var(--paper);border:1px solid var(--accent);padding:0 4px;position:absolute;top:-16px;left:-1px;overflow:hidden}.canvas .annpop{background:var(--paper);border:1px solid var(--accent);border-radius:var(--radius);width:276px;box-shadow:0 4px 14px color-mix(in srgb, var(--ink) 18%, transparent);font-size:var(--fs-table);z-index:3;cursor:default;position:absolute}.canvas .annpop .hd{white-space:nowrap;border-bottom:1px solid var(--line-2);color:var(--accent);font-weight:600;font-size:var(--fs-min);align-items:center;gap:8px;padding:6px 8px;display:flex}.canvas .annpop .hd .mono{color:var(--ink-2);margin-left:auto;font-weight:400}.canvas .annpop .hd .mono.obj{color:var(--ink);text-overflow:ellipsis;max-width:120px;margin-left:0;overflow:hidden}.canvas .annpop textarea{resize:none;width:100%;font:var(--fs-table) / 1.4 var(--font-ui);color:var(--ink);background:0 0;border:0;height:48px;padding:8px;display:block}.canvas .annpop textarea::placeholder{color:var(--ink-3)}.canvas .annpop .ft{border-top:1px solid var(--line-2);justify-content:flex-end;gap:6px;padding:6px 8px;display:flex}.msg.u.ann{max-width:100%;color:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);background:0 0;padding:0;overflow:hidden}.msg.u.ann .shot img{object-fit:cover;object-position:top left;border-bottom:1px solid var(--line-2);background:var(--paper);width:100%;max-height:140px;display:block}.msg.u.ann .shot .noimg{color:var(--ink-3);font-size:var(--fs-min);border-bottom:1px solid var(--line-2);padding:14px}.msg.u.ann .shot .cap{color:var(--accent);background:var(--panel);border-bottom:1px solid var(--line-2);gap:6px;padding:4px 8px;font-size:11px;display:flex}.msg.u.ann .shot .cap .mono{color:var(--ink-2)}.msg.u.ann .txt{background:var(--ink);color:var(--paper);padding:7px 10px}.msg.s .note{border-left:2px solid var(--line);background:var(--panel);font-size:var(--fs-table);padding:6px 10px;line-height:1.5}.msg.s .note.err{border-left-color:var(--accent)}.msg.s .note.ask{border-left-color:var(--ink)}.msg.s .note a{color:var(--accent)}.plan .r .v{overflow-wrap:anywhere;min-width:0}.plan .r .v .mono{font-size:var(--fs-min)}.plan .r .v .obj{margin:0 6px 2px 0;display:inline-block}.plan .r .v .rule{border:1px solid var(--line);border-radius:var(--radius);font-size:var(--fs-min);margin-right:4px;padding:0 5px;display:inline-block}.plan .r .v .lnk{color:var(--ink);text-underline-offset:2px;text-decoration:underline}.plan .r .v .lnk:hover{color:var(--accent)}.plan .rows .pending{padding:6px 10px}.plan.rejected,.plan.failed{border-color:var(--line);color:var(--ink-2)}.plan.executed,.plan.executing{border-color:var(--ink-2)}.plan .jobs{border-top:1px solid var(--line-2);flex-direction:column;gap:6px;padding:6px 10px 2px;display:flex}.plan .jobs .task{border:0;padding:2px 0}.scopeq{font-size:var(--fs-min);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.scopeq>span:first-child{margin-right:2px}.compare .tools .select{width:auto;height:24px;font-size:var(--fs-min);padding:0 4px}.compare .tools .muted{font-size:var(--fs-min)}.compare .tools .seg{gap:0;display:inline-flex}.compare .tools .seg .btn+.btn{margin-left:-1px}.compare .pair{align-items:flex-start;gap:18px;display:flex}.compare .pair figure{margin:0}.compare .pair figcaption{font-size:var(--fs-min);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.compare .pair figcaption .mono{color:var(--ink)}.compare .pair canvas{width:100%;height:100%;display:block}.compare .lg{border:1px solid var(--line);vertical-align:-1px;width:10px;height:10px;margin-left:8px;display:inline-block}.compare .lg.add{background:var(--diff-add);border-color:var(--diff-add)}.compare .lg.del{background:var(--diff-del);border-color:var(--diff-del)}.compare .lg.same{background:color-mix(in srgb, var(--diff-same) 45%, var(--paper))}.modal{z-index:60;background:color-mix(in srgb, var(--ink) 35%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);border:1px solid var(--ink);border-radius:var(--radius);width:620px;max-width:100%;max-height:calc(100vh - 48px);box-shadow:0 8px 28px color-mix(in srgb, var(--ink) 22%, transparent);flex-direction:column;min-height:0;display:flex}.dialog .dh{border-bottom:1px solid var(--ink);align-items:center;gap:10px;height:36px;padding:0 12px;font-weight:600;display:flex}.dialog .dh .mono{color:var(--ink-2);font-weight:400;font-size:var(--fs-min)}.dialog .dh .x{color:var(--ink-2);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:18px;line-height:1}.dialog .body{font-size:var(--fs-table);flex-direction:column;gap:10px;padding:10px 12px;display:flex;overflow:auto}.dialog .df{border-top:1px solid var(--line);font-size:var(--fs-min);align-items:center;gap:8px;padding:8px 12px;display:flex}.dialog .df .faint{flex:1;line-height:1.4}.drc-grp{flex-direction:column;gap:2px;display:flex}.drc-grp>b{padding:2px 0 4px;font-weight:600}.drc-grp .faint{padding-top:4px}.drc-row{border-left:2px solid var(--line);background:var(--panel);align-items:flex-start;gap:8px;padding:5px 8px;line-height:1.45;display:flex}.drc-row.error{border-left-color:var(--accent)}.drc-row.warn{border-left-color:var(--ink-2);cursor:pointer}.drc-row.warn.info{cursor:default}.drc-row.ok{border-left-color:var(--ink)}.drc-row input{accent-color:var(--ink);margin:3px 0 0}.drc-row .code{color:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);white-space:nowrap;background:var(--paper);margin-right:6px;padding:0 4px;font-size:11px;display:inline-block}.drc-row.error .code{color:var(--accent);border-color:var(--accent)}.drc-row .ref{color:var(--ink-3);font-size:var(--fs-min);margin-left:6px}.dialog .task{border:1px solid var(--line);padding:8px 10px}.deliv{border-top:1px solid var(--ink);flex-direction:column;display:flex}.deliv .d{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;min-height:36px;padding:4px 0;display:flex}.deliv .d .nm{font-size:var(--fs-min)}.deliv .d .muted{font-size:var(--fs-min);flex:1}.timeline .v.change:after{border-radius:1px;transform:rotate(45deg)}.timeline .v .tag.acc{color:var(--accent);border-color:var(--accent)}.timeline .v.ghost .kind{border-style:dashed}:root{--edited-bg:color-mix(in srgb, var(--accent) 8%, var(--paper));--draft-bg:color-mix(in srgb, var(--panel) 70%, var(--paper))}.src,td.price .pv .src{background:var(--ink-2);border-radius:1px;flex:none;width:6px;height:6px;display:inline-block}.src.scraped,td.price .pv .src.scraped{background:var(--ink)}.src.sample,td.price .pv .src.sample{background:var(--ink-3)}.src.manual,td.price .pv .src.manual{background:var(--line)}.src.import,td.price .pv .src.import{border:1px solid var(--ink);background:0 0}.src.est,td.price .pv .src.est{border:1px dashed var(--accent);background:0 0}.qlegend i.scraped{background:var(--ink)}.qlegend i.sample{background:var(--ink-3)}.qlegend i.manual{background:var(--line)}.qlegend i.import{border:1px solid var(--ink);background:0 0}.qlegend i.est{border:1px dashed var(--accent);background:0 0}.vbar{height:var(--stagebar-h);border-bottom:1px solid var(--line);background:var(--paper);font-size:var(--fs-table);white-space:nowrap;flex:none;align-items:center;gap:0;min-width:0;padding:0 20px;display:flex;overflow:hidden}.vbar .v{border-radius:var(--radius);height:28px;color:var(--ink-2);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.vbar .v:hover{border-color:var(--line)}.vbar .v.on{border-color:var(--ink);color:var(--ink)}.vbar .v .dot{border:1.5px solid var(--line);background:var(--paper);border-radius:50%;width:8px;height:8px}.vbar .v.active .dot{background:var(--ink);border-color:var(--ink)}.vbar .v.draft .dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, var(--paper))}.vbar .v.draft{color:var(--accent)}.vbar .v.draft.on{border-color:var(--accent)}.vbar .v .no{font-family:var(--font-data);font-size:var(--fs-min);font-weight:600}.vbar .v .st{font-size:var(--fs-min)}.vbar .v .st:before{display:none}.vbar .v .meta{color:var(--ink-3);font-size:var(--fs-min)}.vbar .v .meta .num{color:var(--ink-2)}.vbar .sep{background:var(--line-2);width:1px;height:16px;margin:0 10px;transform:skew(-18deg)}.vbar .hist{color:var(--ink-3);font-size:var(--fs-min);align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.vbar .hist .v{gap:6px;height:24px;padding:0 7px}.vbar .sr{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.prices{flex-direction:column;flex:1;min-height:0;display:flex}.prices .filters{border-bottom:1px solid var(--line-2);flex-wrap:wrap;flex:none;padding:10px 20px}.prices .filters .input{width:220px}.prices .filters .check{font-size:var(--fs-min);color:var(--ink-2)}.prices .filters .cnt .mono{color:var(--ink)}.prices .t-scroll{flex:1;padding:0 20px 20px}table.t tr.grp td{background:var(--panel);border-bottom:1px solid var(--line);border-top:1px solid var(--line);cursor:pointer;height:30px;font-weight:600}table.t tr.grp td .key{font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink-2);margin-left:8px;font-weight:400}table.t tr.grp td .cnt{font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink-2);margin-left:10px;font-weight:400}table.t tr.grp td .cnt .acc{color:var(--accent)}table.t tr.grp td .note{color:var(--ink-3);font-weight:400;font-size:var(--fs-min);margin-left:10px}table.t tr.grp td .acts{float:right;visibility:visible;gap:6px;display:inline-flex}table.t tr.grp .tri{border-left:5px solid var(--ink-2);vertical-align:1px;border-top:4px solid #0000;border-bottom:4px solid #0000;width:0;height:0;margin-right:8px;transition:transform .12s;display:inline-block}table.t tr.grp.open .tri{transform:rotate(90deg)}table.t td.stale .num,.stale-mark{color:var(--accent)}table.t td .acts{visibility:hidden;gap:4px;display:inline-flex}table.t tr:hover td .acts,table.t tr:focus-within td .acts{visibility:visible}table.t tr.draft-edit td{background:var(--edited-bg)!important}table.t tr.newrow td{background:var(--draft-bg)}table.t td.cell-edit{cursor:text}table.t td.cell-edit:hover{box-shadow:inset 0 0 0 1px var(--line)}table.t td .ed{align-items:center;gap:4px;display:inline-flex}table.t td .ed input{border:1px solid var(--ink);border-radius:var(--radius);width:92px;height:22px;font-family:var(--font-data);font-size:var(--fs-min);text-align:right;background:var(--paper);outline:none;padding:0 6px}table.t td .ed input.text{font-family:var(--font-ui);font-size:var(--fs-table);text-align:left;width:100%;min-width:140px}table.t td .ed .unit{color:var(--ink-3);font-size:11px}table.t td .ed button{border:1px solid var(--line);border-radius:var(--radius);width:20px;height:20px;color:var(--ink-2);background:var(--paper);font-size:11px}table.t td .ed button:hover{border-color:var(--ink);color:var(--ink)}table.t td .was{color:var(--ink-3);font-size:11px;line-height:1;text-decoration:line-through;display:block}.readonly-hint{color:var(--ink-3);font-size:var(--fs-min)}.wiz{width:840px}.wiz .steps{font-size:var(--fs-min);color:var(--ink-3);gap:18px;display:flex}.wiz .steps .s{align-items:center;gap:6px;display:inline-flex}.wiz .steps .s .dot{border:1.5px solid var(--line);border-radius:50%;width:8px;height:8px}.wiz .steps .s.on{color:var(--accent);font-weight:600}.wiz .steps .s.on .dot{background:var(--accent);border-color:var(--accent)}.wiz .steps .s.done{color:var(--ink)}.wiz .steps .s.done .dot{background:var(--ink);border-color:var(--ink)}.wiz .drop{border:1.5px dashed var(--line);border-radius:var(--radius);background:var(--panel);text-align:center;color:var(--ink-2);cursor:pointer;padding:16px}.wiz .drop:hover,.wiz .drop.over{border-color:var(--ink)}.wiz .drop b{color:var(--ink);font-weight:600;display:block}.wiz .drop .mono{color:var(--ink)}.wiz .preview-raw{border:1px solid var(--line-2);max-height:150px;overflow:auto}.wiz .preview-raw table.t td,.wiz .preview-raw table.t th{height:22px;padding:2px 8px;font-size:11.5px}.wiz .sum{flex-wrap:wrap;gap:6px;display:flex}.wiz .sum button{border:1px solid var(--line);border-radius:var(--radius);height:26px;font-size:var(--fs-min);color:var(--ink-2);background:var(--paper);align-items:center;gap:6px;padding:0 10px;display:inline-flex}.wiz .sum button .num{color:var(--ink)}.wiz .sum button.on{border-color:var(--ink);color:var(--ink)}.wiz .sum button.inv.on,.wiz .sum button.inv .num{color:var(--accent)}.wiz .sum button.inv.on{border-color:var(--accent)}.wiz .diff{border-bottom:1px solid var(--line-2);max-height:380px;overflow:auto}.act-tag{border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-2);padding:0 5px;font-size:11px;display:inline-block}.act-tag.add{border-color:var(--ink);color:var(--ink)}.act-tag.update{background:var(--ink);border-color:var(--ink);color:var(--paper)}.act-tag.invalid{border-color:var(--accent);color:var(--accent)}.profiles{grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:16px;padding:14px 0;display:grid}.pcard{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;min-width:0;display:flex}.pcard.dirty{border-color:var(--ink)}.pcard .pc-h{border-bottom:1px solid var(--ink);align-items:baseline;gap:10px;padding:10px 14px;display:flex}.pcard .pc-h .code{font-family:var(--font-data);font-size:20px;font-weight:600;line-height:1}.pcard .pc-h b{font-weight:600}.pcard .pc-h .muted{font-size:var(--fs-min)}.pcard .pc-h .r{font-size:var(--fs-min);color:var(--ink-3);white-space:nowrap;margin-left:auto}.pcard .pc-b{flex-direction:column;gap:10px;padding:10px 14px 12px;display:flex}.pcard .prow{font-size:var(--fs-table);border-bottom:1px solid var(--line-2);grid-template-columns:140px minmax(0,1fr);align-items:center;gap:10px;padding:4px 0;display:grid}.pcard .prow>span:first-child{color:var(--ink-2)}.pcard .prow .input,.pcard .prow .select{width:160px;height:26px}.pcard .prow .with-unit{align-items:center;gap:6px;display:inline-flex}.pcard .prow .with-unit .unit{color:var(--ink-3);font-size:var(--fs-min)}.pcard .notes{flex-direction:column;gap:4px;display:flex}.pcard .notes .n{align-items:center;gap:6px;display:flex}.pcard .notes .n .idx{font-family:var(--font-data);color:var(--ink-3);width:16px;font-size:11px}.pcard .notes .n .input{width:100%;height:26px}.pcard .pc-f{border-top:1px solid var(--line);font-size:var(--fs-min);color:var(--ink-3);align-items:center;gap:8px;margin-top:auto;padding:8px 14px;display:flex}.pcard .pc-f .btn{margin-left:auto}.pcard .pc-f .btn+.btn{margin-left:0}.metals{flex:1;grid-template-columns:minmax(0,1fr) 400px;min-height:0;display:grid}.metals .colL{border-right:1px solid var(--line-2);min-width:0;min-height:0;padding:0 20px 20px;overflow:auto}.metals .colR{min-height:0;padding:0 24px 20px 20px;overflow:auto}.metals .sec{padding-right:0}.chart{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--paper);padding:8px 10px 4px}.chart svg{width:100%;height:180px;display:block;overflow:visible}.chart .ax{stroke:var(--line);stroke-width:1px}.chart .grid{stroke:var(--line-2);stroke-width:1px}.chart .ln{fill:none;stroke:var(--ink);stroke-width:1.4px;stroke-linejoin:round}.chart .ln.al{stroke:var(--ink-3)}.chart .pt{fill:var(--paper);stroke:var(--ink);stroke-width:1.2px}.chart .pt.last{fill:var(--ink)}.chart .pt.manual{stroke:var(--accent)}.chart text{font-family:var(--font-data);fill:var(--ink-3);font-size:10px}.chart .cap{font-size:var(--fs-min);color:var(--ink-2);justify-content:space-between;padding:4px 0 2px;display:flex}.chart .cap .num{color:var(--ink)}.metalform{grid-template-columns:80px 120px 100px 130px minmax(0,1fr) auto;align-items:end;gap:8px;padding:10px 0 4px;display:grid}.metalform .field>span{white-space:nowrap}.copper{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.copper .big{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:26px;line-height:1}.copper .big small{font-size:var(--fs-min);color:var(--ink-3);font-family:var(--font-ui);margin-left:6px}.copper .kv .r{grid-template-columns:110px minmax(0,1fr)}.copper .eq{color:var(--ink-2);font-size:var(--fs-min);line-height:1.6}.copper .eq .num{color:var(--ink)}.copper .df{border-top:1px solid var(--line-2);font-size:var(--fs-min);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;padding-top:6px;display:flex}.copper .df>span{flex:160px}.copper .df .btn{margin-left:auto}.seg{border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;overflow:hidden}.seg button{height:24px;font-size:var(--fs-min);color:var(--ink-2);background:var(--paper);padding:0 10px}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--ink);color:var(--paper)}.qbar .sel select{font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink);background:0 0;border:0;max-width:220px}.qbar .chip.est.clickable,.qbar .chip.clickable{cursor:pointer}.qbar .chip.clickable:hover{border-color:var(--ink)}.qbar .runjob{font-size:var(--fs-min);color:var(--ink-2);align-items:center;gap:8px;display:inline-flex}.qbar .runjob .bar{background:var(--line-2);width:90px;height:4px;position:relative}.qbar .runjob .bar i{background:var(--ink);position:absolute;inset:0 auto 0 0}.editbar{border-top:1px solid var(--accent);background:var(--edited-bg);font-size:var(--fs-table);flex:none;align-items:center;gap:12px;padding:8px 20px;display:flex}.editbar b{color:var(--accent);font-weight:600}.editbar .delta{color:var(--ink-2);font-size:var(--fs-min)}.editbar .r{gap:8px;margin-left:auto;display:flex}.qblk h3 .acts .btn.on{background:var(--ink);color:var(--paper)}.drawer .est-list .row{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:8px 14px;display:grid}.drawer .est-list .row .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.drawer .est-list .row .sub{color:var(--ink-2);font-size:var(--fs-min);flex-wrap:wrap;grid-column:1/3;gap:10px;display:flex}.drawer .est-list .row .sub .mono{color:var(--ink)}.drawer .refs .ref{border-bottom:1px solid var(--line-2);padding:8px 14px}.drawer .refs .ref .hd{font-size:var(--fs-table);align-items:center;gap:8px;display:flex}.drawer .refs .ref .hd .mono{color:var(--ink)}.drawer .refs .ref .hd .muted{font-size:var(--fs-min)}.drawer .kv .r .v a{color:var(--ink);text-decoration:underline}.drawer .verlist .vr{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);cursor:pointer;grid-template-columns:48px minmax(0,1fr) auto;gap:4px 10px;padding:8px 14px;display:grid}.drawer .verlist .vr:hover{background:color-mix(in srgb, var(--panel) 60%, var(--paper))}.drawer .verlist .vr.on{background:var(--panel)}.drawer .verlist .vr .sub{color:var(--ink-2);font-size:var(--fs-min);grid-column:2/4}.drawer .verlist .vr .parent{color:var(--ink-3);font-size:11px}.verlist .tree{border-left:1px solid var(--ink-3);border-bottom:1px solid var(--ink-3);vertical-align:1px;width:10px;height:10px;margin:0 4px 0 2px;display:inline-block}@media (width<=1440px){.metals{grid-template-columns:minmax(0,1fr) 340px}.profiles{grid-template-columns:1fr 1fr}.prices .filters .input{width:160px}.vbar .hist .meta,.qbar .sel .lbl{display:none}.qbar .sel select{max-width:150px}.qbar .tabs button{padding:0 8px}.wiz{width:760px}}.lnk{font:inherit;color:var(--ink);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.lnk:hover{color:var(--accent)}.right .half.ai{flex:0 auto;min-height:120px;max-height:62%;padding-bottom:0}.half.ai .ph .ttl{text-overflow:ellipsis;min-width:0;overflow:hidden}.half.ai .sug-scroll{flex:1;min-height:0;padding-bottom:10px;overflow:auto}.sug .grp{font-size:var(--fs-min);color:var(--ink-2);align-items:center;gap:14px;padding:8px 0 2px;display:flex}.sug .grp .sevcnt{align-items:center;gap:5px;display:inline-flex}.sug .grp .sevcnt .mono{color:var(--ink)}.sug .grp.fold{cursor:pointer;text-align:left;width:100%;color:var(--ink-3);background:0 0;border:0;padding:9px 0 6px}.sug .grp.fold:before{content:"";border:4px solid #0000;border-left-color:var(--ink-3);width:0;height:0;margin-right:2px}.sug .grp.fold.on:before{transform:rotate(90deg)translate(2px,2px)}.sug .grp.fold .mono{margin:0 2px 0 4px}.sev{border:1.4px solid var(--ink-3);background:var(--paper);vertical-align:1px;border-radius:50%;flex:none;width:8px;height:8px;margin-right:6px;display:inline-block}.sev.sev-error{border-color:var(--accent);background:var(--accent)}.sev.sev-warn{border-color:var(--accent)}.sev.sev-info{border-color:var(--ink-3)}.sug .s .t{color:var(--ink);cursor:pointer;font:inherit;font-size:var(--fs-table);background:0 0;border:0;padding:0}.sug .s .t .tt{flex:1;min-width:0}.sug .s .t .tt b{font-weight:600}.sug .s.done .t .tt b{color:var(--ink-2);font-weight:400}.sug .s .more{font:inherit;font-size:var(--fs-min);color:var(--ink-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin:4px 0 0 20px;padding:0;display:flex}.sug .s .more:before{content:"";border:4px solid #0000;border-left-color:var(--ink-2);width:0;height:0;margin-right:2px}.sug .s.open .more:before{transform:rotate(90deg)translate(2px,2px)}.sug .s .body .objrow{color:var(--ink-3);overflow-wrap:anywhere;margin-top:6px}.sug .s .body .objrow .mono,.sug .s .body .objrow a{color:var(--ink)}.sug .s .body .objrow a{text-underline-offset:2px;text-decoration:underline}.ev .cite{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;display:flex}.ev .cite a{color:var(--ink);text-underline-offset:2px;text-decoration:underline}.ev .cite .mono{color:var(--ink)}.ev q{quotes:none;color:var(--ink);white-space:pre-line;line-height:1.55;display:block}.ev q:before,.ev q:after{content:none}.sug .s .body .patch{color:var(--ink-3);flex-wrap:wrap;gap:4px 8px;margin-top:6px;display:flex}.sug .s .body .patch .mono{color:var(--ink);overflow-wrap:anywhere}.sug .s .body .decided{color:var(--ink-3);margin-top:6px}.sug .s .acts{flex-wrap:wrap}.sug .askbox{font-size:var(--fs-min);flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 0 20px;display:flex}.sug .askbox .input{min-width:160px;height:26px;font-size:var(--fs-min);flex:1}.sug .askbox .answer{color:var(--ink-2);flex-direction:column;flex-basis:100%;gap:6px;line-height:1.5;display:flex}.sug .askbox .answer .who{color:var(--ink-3);margin-bottom:2px;font-size:11px;display:block}.sug .askbox .answer .q{background:var(--ink);max-width:92%;color:var(--paper);border-radius:3px 3px 0;align-self:flex-end;padding:5px 9px}.sug .askbox .answer .q .who{color:var(--line)}.sug .askbox .answer .a{color:var(--ink)}.sug .askbox .answer .a .ev{margin:6px 0 0}.sug .note{border-left:2px solid var(--accent);background:var(--panel);font-size:var(--fs-min);padding:6px 10px;line-height:1.5}.sug .note a,.half.ai .note a{color:var(--accent)}.half.ai>.note{border-left:2px solid var(--accent);background:var(--panel);font-size:var(--fs-min);padding:6px 10px}.tbc li.rest:before{content:none}.tbc li.rest a{color:var(--ink-3)}.canvas .sheet .hit.loc{background:color-mix(in srgb, var(--accent) 8%, transparent);border-width:2px;animation:1.2s ease-out locpulse}@keyframes locpulse{0%{box-shadow:0 0 0 10px color-mix(in srgb, var(--accent) 35%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}}.asm.flash{background:color-mix(in srgb, var(--accent) 6%, var(--paper));transition:background .6s}.seccard.flash{outline:2px solid var(--accent);outline-offset:2px}.design .side-col.right{padding:0;overflow:hidden}.design .bomwrap table.t th,.design .bomwrap table.t td{white-space:normal}.kbsearch{align-items:center;gap:8px;padding:14px 0 6px;display:flex}.kbsearch .input{flex:1;max-width:640px}.kbsearch .select{width:auto}.hits .hit{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);padding:8px 0;line-height:1.55}.hits .hit .cite{font-size:var(--fs-min);color:var(--ink-2);align-items:center;gap:8px;margin-bottom:2px;display:flex}.hits .hit .cite .lnk{color:var(--ink);font-weight:600;text-decoration:none}.hits .hit .cite .lnk:hover{text-decoration:underline}.hits .hit q{quotes:none;border-left:2px solid var(--line);background:var(--panel);padding:4px 8px;display:block}.hits .hit q:before,.hits .hit q:after{content:none}mark{background:color-mix(in srgb, var(--accent) 16%, var(--paper));color:var(--ink);border-bottom:1px solid var(--accent);padding:0 1px}.kbgrid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:24px;display:grid}.kbgrid .sec{min-width:0}.kbupload{flex-direction:column;gap:10px;display:flex}.kbupload .upload{margin-top:0}.kbupload .upload.has{border-style:solid;border-color:var(--ink);background:var(--paper)}.kbupload .upload .mono{color:var(--ink-2);display:block}.kbupload .upload .faint{margin-top:4px;display:block}.kbupload textarea.input{resize:vertical;height:auto;padding:6px 8px;line-height:1.4}.regions{flex-wrap:wrap;gap:6px;display:flex}.regions .chip{cursor:pointer;font-family:var(--font-data)}.regions .chip:hover{border-color:var(--ink-2)}.kbdetail{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.chunks .chunk{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);padding:8px 0;line-height:1.55}.chunks .chunk .cite{color:var(--ink-2);gap:10px;margin-bottom:2px;display:flex}.chunks .chunk q{quotes:none;white-space:pre-line;display:block}.chunks .chunk q:before,.chunks .chunk q:after{content:none}.chunks .chunk.want{border-left:2px solid var(--accent);padding-left:8px}.pager{font-size:var(--fs-min);color:var(--ink-2);align-items:center;gap:10px;padding:10px 0;display:flex}.pager .mono{color:var(--ink)}.kb .hdr .actions .btn.acc{color:var(--accent);background:var(--paper)}.rules{flex:1;grid-template-columns:220px minmax(0,1fr);min-height:0;display:grid}.rules.with-drawer{grid-template-columns:220px minmax(0,1fr) 520px}.rules .cats{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;min-height:0;display:flex;overflow:auto}.rules .cats .ph{background:var(--panel)}.rules .cats button{text-align:left;width:100%;height:30px;font:inherit;font-size:var(--fs-table);color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;align-items:center;gap:6px;padding:0 12px;display:flex}.rules .cats button .mono:last-child{color:var(--ink-3);margin-left:auto}.rules .cats button:hover{color:var(--ink)}.rules .cats button.on{color:var(--ink);background:var(--paper);border-left-color:var(--ink);font-weight:600}.rules .cats button.on .mono:last-child{color:var(--ink)}.rules .cats .note{color:var(--ink-3);border-top:1px solid var(--line-2);margin-top:auto;padding:12px;font-size:11.5px;line-height:1.5}.rules .list{flex-direction:column;min-width:0;min-height:0;padding:0 24px;display:flex}.rules .list .filters .input{width:360px}.rules .list .t-scroll{flex:1;min-height:0;padding-bottom:24px;overflow:auto}.rules table.t tr.on td{background:var(--panel)}.ovs{flex-wrap:wrap;gap:3px 6px;display:inline-flex}.ovs .ov{border:1px solid var(--line-2);border-radius:var(--radius);color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;max-width:220px;padding:0 4px;overflow:hidden}.drawer .ovt{width:calc(100% - 28px);margin:0 14px}.drawer .ovt td{white-space:normal;overflow-wrap:anywhere}.drawer .ev{border-left:2px solid var(--line);background:var(--panel);font-size:var(--fs-table);padding:6px 10px;line-height:1.55}.drawer .kv .r .v.mono,.drawer .kv .r .v.num{font-family:var(--font-data);font-size:var(--fs-min)}.drawer .kv .r .v .lnk{text-decoration:underline}.drawer .verlist .vr{cursor:default}.attrbar{border-bottom:1px solid var(--line-2);grid-template-columns:repeat(5,minmax(0,1fr));gap:0 18px;padding:12px 0 4px;display:grid}.attrbar .row{font:inherit;font-size:var(--fs-min);color:var(--ink-2);cursor:pointer;text-align:left;background:0 0;border:0;border-left:2px solid #0000;grid-template-columns:64px minmax(0,1fr) 32px;align-items:center;gap:8px;padding:4px 6px;display:grid}.attrbar .row:hover{background:var(--panel)}.attrbar .row.on{border-left-color:var(--ink);background:var(--panel);color:var(--ink)}.attrbar .row .bar{background:var(--panel);border:1px solid var(--line-2);height:8px;position:relative}.attrbar .row .bar i{background:var(--ink);position:absolute;inset:0 auto 0 0}.attrbar .row .bar i.acc{background:var(--accent)}.attrbar .row .num{text-align:right;color:var(--ink)}.attrbar .row .num.acc{color:var(--accent)}.diff{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.diff .del,.diff .add{text-overflow:ellipsis;white-space:nowrap;max-width:190px;overflow:hidden}.diff .del{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.diff .add{color:var(--ink)}.diff .arr{color:var(--ink-3)}table.t tr.pend td:first-child{box-shadow:inset 2px 0 0 var(--accent)}table.t td select.inline-input.acc{color:var(--accent)}.filters .field.inline{flex-direction:row;align-items:center;gap:6px}.filters .field.inline>span{margin:0}.filters .field.inline .input{width:140px}table.t td .detail{color:var(--ink-2)}.usage{grid-template-columns:220px minmax(0,1fr);align-items:stretch;gap:18px;padding:8px 0 4px;display:grid}.usage .totals{border-top:1px solid var(--ink);grid-template-rows:repeat(4,1fr);display:grid}.usage .totals>div{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:baseline;gap:8px;padding:4px 0;display:flex}.usage .totals .k{color:var(--ink-2);font-size:var(--fs-min)}.usage .totals .big{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:15px}.usagechart svg{height:150px}.chart .ln.dash{stroke-dasharray:3 3;stroke:var(--ink-3)}.chart .cap .lg{border-top:1.4px solid var(--ink);vertical-align:3px;width:14px;height:0;margin-right:4px;display:inline-block}.chart .cap .lg.dash{border-top-style:dashed;border-top-color:var(--ink-3)}.sec h3.sub{font-size:var(--fs-table);color:var(--ink-2);padding:12px 0 4px;font-weight:600}.kbrow{border-top:1px solid var(--line-2);grid-template-columns:repeat(3,1fr);display:grid}.kbrow a{color:var(--ink-2);font-size:var(--fs-min);border-bottom:1px solid var(--line-2);flex-direction:column;gap:2px;padding:10px 12px 10px 0;text-decoration:none;display:flex}.kbrow a+a{border-left:1px solid var(--line-2);padding-left:12px}.kbrow a:hover{color:var(--ink)}.kbrow .big{font-family:var(--font-data);color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px}.kbrow .big.acc{color:var(--accent)}@media (width<=1440px){.kbgrid{grid-template-columns:minmax(0,1fr) 300px;gap:16px}.kbdetail{grid-template-columns:minmax(0,1fr) 280px}.rules{grid-template-columns:180px minmax(0,1fr)}.rules.with-drawer{grid-template-columns:180px minmax(0,1fr) 380px}.rules .list .filters .input{width:240px}.rules.with-drawer .col-src{display:none}.diff .del,.diff .add{max-width:130px}.attrbar{gap:0 8px}.attrbar .row{grid-template-columns:56px minmax(0,1fr) 28px}.usage{grid-template-columns:180px minmax(0,1fr)}.kbsearch .input{max-width:420px}}.page .hdr .actions{flex:none;align-items:center;gap:8px;display:flex}.props,.evals{flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.props.with-drawer{grid-template-columns:minmax(0,1fr) 600px}.evals.with-drawer{grid-template-columns:minmax(0,1fr) 560px}.props .page,.evals .page{min-width:0}.drawer .dh .ttl{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.drawer .dh .mono{color:var(--ink-2);font-weight:400}table.t tr.on td{background:var(--panel)}.ktag{border:1px solid var(--ink);border-radius:var(--radius);color:var(--ink);white-space:nowrap;padding:0 5px;font-size:11px;line-height:16px;display:inline-block}.ktag.logic{border-style:dashed;border-color:var(--ink-3);color:var(--ink-2)}.pst{white-space:nowrap}.pst:before{content:"";vertical-align:0;border:1.2px solid var(--ink);border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.pst.pending{color:var(--accent)}.pst.pending:before{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent)}.pst.approved:before{background:var(--ink)}.pst.approved_pending_dev:before{background:linear-gradient(90deg, var(--ink) 50%, transparent 50%)}.pst.rejected{color:var(--ink-3)}.pst.rejected:before{border-color:var(--ink-3)}.drawer .draft{font-size:var(--fs-table);padding:8px 14px}.drawer .draft .r{grid-template-columns:40px minmax(0,1fr);gap:10px;padding:4px 0;line-height:1.5;display:grid}.drawer .draft .r .k{color:var(--ink-2)}.drawer .evlist .evr{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);grid-template-columns:64px minmax(0,1fr);gap:2px 10px;padding:8px 14px;display:grid}.drawer .evlist .evr .stg{color:var(--ink-2);grid-row:1/3}.drawer .evlist .evr .obj{color:var(--ink)}.drawer .evlist .evr .diff{grid-column:2}.drawer .evlist .evr .sub{color:var(--ink-2);font-size:var(--fs-min);grid-column:2}.drawer .evlist .evr .chip{margin-left:6px}table.t.impact td,table.t.impact th{vertical-align:top}table.t.impact tr.changed td:first-child{font-weight:600}table.t.impact tr.dr td{border-bottom:1px solid var(--line-2);padding-top:0;padding-bottom:6px}table.t.impact tr.changed+tr.dr{border-top:0}table.t.impact.compact tr.changed td{border-bottom:0}table.t.impact td.wrap{padding-top:5px;padding-bottom:5px;line-height:1.45}table.t.impact span.chg{flex-wrap:wrap;justify-content:flex-end;gap:0 5px;display:inline-flex}table.t.impact .chg .del{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}table.t.impact .chg .arr{color:var(--ink-3)}table.t.impact .dlt{color:var(--ink-2);font-size:11px}table.t.impact .dl{color:var(--ink-2);font-size:var(--fs-min);margin:0;padding-left:14px}table.t.impact.compact .dl{padding-left:12px}.impact-sum{color:var(--ink-2);font-weight:400}.impact-sum .num{color:var(--ink)}.drawer .used.acc{color:var(--accent)}table.t.pform tr.dirty td:first-child{box-shadow:inset 2px 0 0 var(--accent)}table.t.pform .inline-input{width:100%;min-width:90px}.ovs .ov.eff{border-color:var(--ink);color:var(--ink)}.drawer .verlist .vr .sub.pd{flex-wrap:wrap;gap:4px 10px;display:flex}.drawer .verlist .vr .sub.pd s{color:var(--ink-3);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.drawer .verlist .vr .sub.pd b{color:var(--ink)}.drawer .field{margin-bottom:4px}.attrcell{align-items:center;gap:6px;display:inline-flex}.attrby{color:var(--ink-3);border:1px solid var(--line);border-radius:var(--radius);white-space:nowrap;padding:0 4px;font-size:11px;line-height:15px}.attrby.auto{border-style:dashed}.casegrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:8px 0 24px;display:grid}.casecard{border:1px solid var(--ink);border-radius:var(--radius);background:var(--paper);color:var(--ink);font-size:var(--fs-table);flex-direction:column;gap:8px;padding:12px 14px;text-decoration:none;display:flex}.casecard:hover{background:color-mix(in srgb, var(--panel) 60%, var(--paper))}.casecard .h{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.casecard .facts{color:var(--ink-2);font-size:var(--fs-min);gap:12px;display:flex}.casecard .nums{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);color:var(--ink-2);font-size:var(--fs-min);grid-template-columns:repeat(3,1fr);padding:6px 0;display:grid}.casecard .nums .big{color:var(--ink);margin-right:3px;font-size:16px}.casecard .kinds{color:var(--ink-2);font-size:var(--fs-min)}.casecard .sum{color:var(--ink-3);font-size:var(--fs-min);line-height:1.45}.simcases .ph{padding-left:0;padding-right:0}.simcases .ph .more{color:var(--ink-2);font-weight:400;font-size:var(--fs-min)}.simcases .hint{color:var(--ink-3);font-size:var(--fs-min);padding:8px 0}.simcases .case{border-bottom:1px solid var(--line-2);color:var(--ink);font-size:var(--fs-table);grid-template-columns:44px minmax(0,1fr);gap:1px 10px;padding:8px 0;text-decoration:none;display:grid}.simcases .case:hover b{text-decoration:underline}.simcases .case .score{grid-row:1/3;align-self:start;padding-top:1px;font-size:15px}.simcases .case .nm{justify-content:space-between;gap:8px;min-width:0;display:flex}.simcases .case .nm b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.simcases .case .nm .num{font-size:var(--fs-min);white-space:nowrap}.simcases .case .df{color:var(--ink-2);font-size:var(--fs-min);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sld .tbl .simcases{border-top:1px solid var(--line);background:var(--panel);flex:none;padding:0 16px}.sld .tbl .simcases .ph{background:0 0}.sld .tbl .simcases .case{padding:5px 0}.sld .tbl .simcases .case:last-child{border-bottom:0}.confbar{justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.confbar i{background:var(--ink);border-radius:1px;flex:none;width:0;min-width:2px;max-width:48px;height:6px;display:inline-block}.switch{vertical-align:middle;width:28px;height:16px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch i{pointer-events:none;border:1.2px solid var(--ink-3);background:var(--paper);border-radius:9px;transition:background .12s;position:absolute;inset:0}.switch i:after{content:"";background:var(--ink-3);border-radius:50%;width:9px;height:9px;transition:transform .12s,background .12s;position:absolute;top:2px;left:2px}.switch input:checked+i{border-color:var(--ink)}.switch input:checked+i:after{background:var(--ink);transform:translate(12px)}.switch input:focus-visible+i{outline:2px solid var(--ink);outline-offset:1px}table.t tr.off td{color:var(--ink-3)}table.t tr.worse td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.metrics .totals{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:4px 0 16px;display:grid}.metrics .tot{flex-direction:column;gap:2px;padding:14px 16px 12px 0;display:flex}.metrics .tot+.tot{border-left:1px solid var(--line-2);padding-left:16px}.metrics .tot .big{color:var(--ink);font-size:26px;line-height:1.1}.metrics .tot .big.acc{color:var(--accent)}.metrics .tot .lbl{font-size:var(--fs-table);color:var(--ink)}.metrics .tot .sub{font-size:var(--fs-min);color:var(--ink-2);min-height:16px}.metrics .tot .tr{color:var(--ink-2)}.metrics .tot .tr.acc{color:var(--accent)}.metrics .charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-bottom:24px;display:grid}.chart.kchart svg{height:150px}.chart.kchart .cap{gap:10px}.chart.kchart .cap .lgw+.lgw{margin-left:12px}.chart .cap .lg.bar{background:var(--ink);vertical-align:-1px;border:0;width:10px;height:8px}.chart .cap .lg.bar.hollow{border:1.2px solid var(--ink);box-sizing:border-box;background:0 0}.chart .br{fill:var(--ink)}.chart .br.hollow{fill:var(--paper);stroke:var(--ink);stroke-width:1.2px}.chart .pt.al{stroke:var(--ink-3)}.chart .note{color:var(--ink-3);padding:4px 0;font-size:11.5px;line-height:1.45}@media (width<=1440px){.props.with-drawer{grid-template-columns:minmax(0,1fr) 500px}.evals.with-drawer{grid-template-columns:minmax(0,1fr) 480px}.props.with-drawer .col-aux{display:none}.props.with-drawer td.col-title{min-width:200px}.casegrid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics .tot .big{font-size:22px}table.t.impact span.chg{justify-content:flex-end}}.sources.with-drawer{grid-template-columns:minmax(0,1fr) 580px}.sources .page .sub-h{border-bottom:1px solid var(--line);align-items:center;gap:2px;margin-top:18px;display:flex}.sources .page .sub-h button[role=tab]{height:34px;font:inherit;font-size:var(--fs-body);color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:0 12px;display:inline-flex}.sources .page .sub-h button[role=tab].on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.sources .page .sub-h .cnt{font-family:var(--font-data);font-size:var(--fs-min);color:var(--ink-2)}.sources .page .sub-h .cnt.acc{color:var(--accent)}.sources .page .sub-h .r{align-items:center;gap:8px;margin-left:auto;display:flex}.sources .site b{font-weight:600;display:block}.sources .site .url{color:var(--ink-3);font-family:var(--font-data);font-size:11px}.sdot{font-size:var(--fs-min);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.sdot:before{content:"";background:var(--ink);border:1px solid var(--ink);box-sizing:border-box;border-radius:50%;flex:none;width:7px;height:7px}.sdot.manual{color:var(--accent)}.sdot.manual:before{border-color:var(--accent);background:0 0}.sdot.failed{color:var(--ink-3)}.sdot.failed:before{background:var(--ink-3);border-color:var(--ink-3)}.sdot.running:before,.sdot.queued:before{border-style:dashed;border-color:var(--ink-2);background:0 0}.rep{font-size:var(--fs-min);color:var(--ink-2);white-space:nowrap;gap:10px;display:inline-flex}.rep b{font-family:var(--font-data);color:var(--ink);font-weight:400}.rep b.acc{color:var(--accent)}.cov{font-family:var(--font-data);font-size:var(--fs-min);align-items:center;gap:6px;display:inline-flex}.cov i{border:1px solid var(--line);background:var(--paper);width:56px;height:5px;display:inline-block;position:relative}.cov i:after{content:"";width:var(--w,0%);background:var(--ink);position:absolute;inset:0}.drawer .frm{flex-direction:column;gap:10px;padding:10px 14px 4px;display:flex}.drawer .frm .form-row.c2{grid-template-columns:1fr 1fr}.drawer .frm .field>.input,.drawer .frm .field>.select,.drawer .frm .field>.textarea{width:100%}.drawer .frm .field .help{color:var(--ink-3);font-size:11.5px;line-height:1.4}.drawer .frm .field .help code{font-family:var(--font-data);color:var(--ink)}.drawer .frm .switches{font-size:var(--fs-table);flex-wrap:wrap;align-items:center;gap:18px;display:flex}.drawer .frm .switches label{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.drawer .frm .groupchips{flex-wrap:wrap;gap:4px;display:flex}.drawer .frm .groupchips .chip{cursor:pointer}.drawer .frm .groupchips .chip.on{border-color:var(--ink);color:var(--ink);background:var(--panel)}.drawer .frm .srcmode{font-size:var(--fs-table);gap:14px;display:flex}.quad{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin:0 14px;display:grid}.quad>div{border-right:1px solid var(--line-2);padding:8px 10px}.quad>div:last-child{border-right:0}.quad .big{font-family:var(--font-data);color:var(--ink);font-size:22px;line-height:1.1}.quad .big.acc{color:var(--accent)}.quad .lb{font-size:var(--fs-min);color:var(--ink-2);margin-top:2px}.snap{border:1px solid var(--line);background:var(--panel);object-fit:cover;object-position:top;vertical-align:middle;width:64px;height:36px;display:inline-block}.snap.lg{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.snap.md{width:160px;height:90px}.testcard{border:1px solid var(--line);border-radius:var(--radius);margin:0 14px 10px}.testcard .th{border-bottom:1px solid var(--line-2);font-size:var(--fs-table);align-items:center;gap:8px;padding:6px 10px;display:flex}.testcard .th .price{font-family:var(--font-data);margin-left:auto;font-size:15px}.testcard .tb{font-size:var(--fs-min);color:var(--ink-2);grid-template-columns:160px minmax(0,1fr);gap:10px;padding:8px 10px;display:grid}.cands{flex-direction:column;gap:4px;list-style:none;display:flex}.cands li{border:1px solid var(--line-2);font-size:var(--fs-min);grid-template-columns:16px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:4px 6px;display:grid}.cands li.on{border-color:var(--ink)}.cands li .ttl{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);overflow:hidden}.cands li .ttl a{color:inherit}.cands li .sc{font-family:var(--font-data);color:var(--ink-3)}.cands li .sc.good{color:var(--ink)}.cands li .pt{font-family:var(--font-data)}.drawer .items table.t td,.drawer .items table.t th{padding-left:8px;padding-right:8px}.drawer .items table.t td.wrap{max-width:180px}.drawer .section-h{font-size:var(--fs-table);align-items:center;gap:8px;padding:12px 14px 6px;font-weight:600;display:flex}.drawer .section-h .muted{font-weight:400;font-size:var(--fs-min)}.drawer .section-h .r{gap:6px;margin-left:auto;display:flex}.drawer.float{z-index:50;width:440px;position:fixed;top:0;bottom:0;right:0}.scrim{z-index:49;background:color-mix(in srgb, var(--ink) 18%, transparent);position:fixed;inset:0}.setrow{border-bottom:1px solid var(--line-2);grid-template-columns:1fr auto;align-items:start;gap:12px;padding:12px 14px;display:grid}.setrow b{font-weight:600;font-size:var(--fs-table);display:block}.setrow span.help{color:var(--ink-2);font-size:var(--fs-min);margin-top:2px;line-height:1.45;display:block}.glossary .filters .input{width:300px}.glossary tr.editing td{background:var(--panel)}.glossary .inline-input{width:100%}.glossary .srcmark{font-size:var(--fs-min);color:var(--ink-3)}.glossary .srcmark.manual{color:var(--ink)}.glossary .confirm{color:var(--accent);font-size:var(--fs-min);align-items:center;gap:6px;display:inline-flex}.importres{font-size:var(--fs-table);border-bottom:1px solid var(--line-2);align-items:center;gap:16px;padding:8px 0;display:flex}.importres b{font-family:var(--font-data);font-weight:400}.importres ul{color:var(--ink-3);font-size:var(--fs-min)}.zh{font-size:var(--fs-min);color:var(--ink-2);cursor:text;align-items:center;gap:6px;min-height:16px;line-height:1.3;display:flex}.zh .txt{color:var(--ink)}.zh .by{color:var(--ink-3);border:1px solid var(--line);border-radius:var(--radius);flex:none;padding:0 3px;font-size:10.5px;line-height:13px}.zh .by.manual{color:var(--ink);border-color:var(--ink)}.zh .by.model{border-style:dashed}.zh.missing{color:var(--ink-3)}.zh.missing:hover .txt{text-decoration:underline}.zh.editing{gap:4px}.zh.editing input{height:20px;font-size:var(--fs-min);border:1px solid var(--ink);border-radius:var(--radius);background:var(--paper);min-width:120px;color:var(--ink);padding:0 4px}.zh.editing label{color:var(--ink-2);white-space:nowrap;align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.zh.editing label input{width:11px;min-width:0;height:11px;accent-color:var(--ink);margin:0}table.t td .zh{margin-top:1px}.sld .tbl table.t td{white-space:normal}.zhbar{font-size:var(--fs-min);color:var(--ink-2);align-items:center;gap:8px;display:inline-flex}.zhbar label{cursor:pointer;color:var(--ink);align-items:center;gap:6px;display:inline-flex}.zhbar .prog{font-family:var(--font-data)}.zh-notice{font-size:var(--fs-min);color:var(--ink-2);border-bottom:1px solid var(--line-2);background:var(--panel);align-items:center;gap:10px;padding:6px 16px;display:flex}.zh-notice a{color:var(--ink);text-decoration:underline}.zh-notice .r{margin-left:auto}.bars{border:1px solid var(--line-2);border-radius:var(--radius);margin:6px 0 10px;padding:4px 10px 6px}.bars table.t{font-size:var(--fs-min)}.bars table.t th,.bars table.t td{border-bottom-color:var(--line-2);height:22px;padding:2px 6px}.bars table.t th{border-bottom-color:var(--line)}.bars .tt{font-size:var(--fs-min);color:var(--ink-2);align-items:baseline;gap:10px;padding:2px 0 4px;display:flex}.bars .tt b{color:var(--ink);font-weight:600}.bars .tt .mono{color:var(--ink)}.three .left .bars{margin:6px 12px 10px}.three .left .bars table.t td,.three .left .bars table.t th{padding:2px 4px}@media (width<=1440px){.sources.with-drawer{grid-template-columns:minmax(0,1fr) 500px}.sources.with-drawer .hide-narrow{display:none}}.seccard ul li .nm.withzh{white-space:normal;flex-direction:column;align-items:flex-start;display:flex}.seccard ul li .nm.withzh>span:first-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.drawer .items table.t{table-layout:fixed;width:100%}.drawer .items table.t td{text-overflow:ellipsis;overflow:hidden}.drawer .items table.t td.wrap{max-width:none;line-height:1.35}.three .left .bars .tt{flex-wrap:wrap;row-gap:2px}.three .left .bars .tt b{white-space:nowrap}
