:root{--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--mono:"SF Mono","Cascadia Mono",Consolas,"Microsoft YaHei",monospace;--bg:#f4f4f5;--surface:#fff;--surface-2:#fafafa;--line:#e4e4e7;--line-soft:#f0f0f2;--ink:#18181b;--ink-2:#3f3f46;--muted:#66666e;--faint:#66666e;--brand:#27272a;--brand-hover:#18181b;--brand-soft:#e4e4e7;--brand-ink:#27272a;--brand-tint:#f4f4f5;--amber:#b54708;--amber-soft:#fff7eb;--amber-line:#f6ddb4;--red:#c2333c;--red-soft:#fef1f2;--red-line:#f5c9cd;--blue:#2e5aac;--blue-soft:#eff4fc;--link:#2e5aac;--slate:#52525b;--slate-soft:#f4f4f5;--seg-fixed:#71717a;--seg-rand:#e08a1e;--seg-noinv:#d4d4d8;--seg-sheet:#5b82c9;--side-bg:#27272a;--side-ink:#d4d4d8;--side-muted:#a1a1aa;--side-hover:#ffffff0d;--side-on-bg:#ffffff14;--side-on-bar:#fff;--shadow:0 1px 2px #18181b0d,0 6px 20px -10px #18181b24;--shadow-pop:0 24px 56px -12px #18181b59;--th-bg:#f4f4f5;--th-ink:#3f3f46;--th-calc-bg:#eaf5ef;--th-calc-ink:#055c40;--r-lg:12px;--r-md:8px;--r-sm:6px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font:14px/1.5 var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:12px}svg.i{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.dim{color:var(--faint)}.app{min-height:100vh;display:flex}.side{background:var(--side-bg);flex-direction:column;flex:none;width:224px;height:100vh;padding:20px 12px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 8px 22px;display:flex}.brand-mark{object-fit:contain;flex:none;width:40px;height:40px;display:block}.brand b{color:#fff;letter-spacing:.12em;font-size:20px;font-weight:700;line-height:1.3;display:block}.brand small{color:var(--side-muted);font-size:12px;display:block}.nav-label{color:var(--side-muted);padding:16px 10px 6px;font-size:12px}.nav a{height:38px;color:var(--side-ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:0 10px;font-size:14px;display:flex;position:relative}.nav a:hover{background:var(--side-hover)}.nav a.on{background:var(--side-on-bg);color:#fff;font-weight:400}.nav a.on:before{content:"";background:var(--side-on-bar);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-12px}.nav a .badge{color:#f5b83d;background:#fbbf2424;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:12px;font-weight:400}.side-foot{color:var(--side-muted);align-items:center;gap:8px;margin-top:auto;padding:10px;font-size:12px;display:flex}.side-foot svg{color:var(--side-on-bar)}main{flex:1;min-width:0;padding:24px 32px}.wrap{max-width:1560px;margin:0 auto}.wrap.narrow{max-width:1200px;margin:0}.wrap.fill{flex-direction:column;height:calc(100vh - 48px);display:flex}.stack-y{gap:16px;display:grid}.gap{flex:none;height:16px}.ph{flex:none;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px;display:flex}.ph-left{min-width:0}.ph-crumb{color:var(--muted);align-items:center;height:22px;font-size:12px;display:flex}.ph-title{letter-spacing:0;align-items:center;gap:10px;font-size:20px;font-weight:700;line-height:1.3;display:flex}.ph-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:14px;overflow:hidden}.ph-actions{flex:none;gap:8px;display:flex}.lock{background:var(--slate-soft);height:24px;color:var(--slate);letter-spacing:0;border-radius:12px;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:400;display:inline-flex}.lock svg{width:13px;height:13px}.btn{border-radius:var(--r-md);white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:14px;font-weight:400;transition:background .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 1px 2px #27272a2e}.btn-primary:hover{background:var(--brand-hover)}.btn-secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);box-shadow:var(--shadow)}.btn-secondary:hover{background:var(--surface-2);border-color:#d4d4d8}.btn-quiet{color:var(--ink-2);padding:0 10px}.btn-quiet:hover{background:var(--slate-soft)}.btn-danger{background:var(--red);color:#fff}.btn-lg{height:40px;padding:0 18px;font-size:14px}.btn-sm{height:30px;padding:0 12px;font-size:12px}.btn[disabled]{opacity:1;color:#a1a1aa;cursor:not-allowed;box-shadow:none;background:#e4e4e7;border-color:#e4e4e7}.btn .cnt{background:var(--slate-soft);color:var(--muted);border-radius:9px;padding:0 6px;font-size:12px;font-weight:400;line-height:18px}.link{color:var(--link);cursor:pointer;white-space:nowrap;font-size:14px;font-weight:400}.link:hover{text-decoration:underline}.link.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}.card-h{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.card-h h3{font-size:16px;font-weight:700}.card-h p{color:var(--muted);font-size:12px}.tag{border-radius:var(--r-sm);white-space:nowrap;align-items:center;gap:5px;height:22px;padding:0 8px;font-size:12px;font-weight:400;display:inline-flex}.tag:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.tag.rand{background:var(--amber-soft);color:var(--amber)}.tag.sys{background:var(--slate-soft);color:var(--slate)}.tag.sheet{background:var(--blue-soft);color:var(--blue)}.tag.skip{color:var(--muted);border:1px solid var(--line);background:0 0;height:20px;padding:0 6px;font-weight:400}.tag.skip:before{display:none}.tag.ok{background:var(--brand-soft);color:var(--brand-ink)}.tag.err{background:var(--red-soft);color:var(--red)}.tag.warn{background:var(--amber-soft);color:var(--amber)}.tag.plain{background:var(--slate-soft);color:var(--muted);font-weight:400}.tag.plain:before{display:none}.chips-list{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chips-list span{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);font-size:12px;font-family:var(--mono);border-radius:5px;padding:2px 8px}.dots{color:var(--muted);gap:12px;font-size:12px;display:flex}.dots span{align-items:center;gap:5px;display:flex}.dots i{border-radius:50%;width:7px;height:7px}.fico{background:var(--slate-soft);width:40px;height:40px;color:var(--muted);border-radius:10px;flex:none;place-items:center;display:grid}.fico svg{width:20px;height:20px}.kpis{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.kpi{padding:16px 20px}.kpi .l{color:var(--muted);font-size:12px}.kpi .v{letter-spacing:-.025em;white-space:nowrap;margin-top:4px;font-size:30px;font-weight:700;line-height:1.2}.kpi .v small{color:var(--muted);letter-spacing:0;margin-left:4px;font-size:14px;font-weight:400}.kpi .v.red{color:var(--red)}.kpi .s{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:12px;overflow:hidden}.bar{background:var(--line-soft);border-radius:3px;gap:2px;height:6px;margin-top:10px;display:flex;overflow:hidden}.legend{color:var(--muted);white-space:nowrap;flex-wrap:wrap;gap:2px 12px;margin-top:6px;font-size:12px;display:flex;overflow:hidden}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:2px;width:8px;height:8px}.tcard{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tabs{border-bottom:1px solid var(--line-soft);flex:none;gap:4px;padding:0 12px;display:flex}.tab{height:46px;color:var(--muted);border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:0 12px;font-size:14px;font-weight:400;display:flex}.tab:hover{color:var(--ink-2)}.tab .c{background:var(--slate-soft);color:var(--muted);border-radius:9px;padding:0 7px;font-size:12px;line-height:18px}.tab.on{color:var(--ink);border-color:var(--brand)}.tab.on .c{background:var(--brand-soft);color:var(--brand-ink)}.toolbar{flex:none;align-items:center;gap:12px;padding:10px 16px;display:flex}.seg{background:var(--slate-soft);border-radius:8px;gap:2px;min-width:0;padding:3px;display:flex;overflow:auto}.seg button{height:26px;color:var(--muted);white-space:nowrap;border-radius:6px;padding:0 10px;font-size:12px;font-weight:400}.seg button:hover{color:var(--ink-2)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #10182814}.seg button[disabled]{opacity:.45;cursor:not-allowed}.seg button .n{color:var(--faint);margin-left:3px;font-weight:400}.search{border:1px solid var(--line);width:260px;height:32px;color:var(--faint);background:var(--surface);border-radius:8px;flex:none;align-items:center;gap:8px;margin-left:auto;padding:0 10px;font-size:14px;display:flex}.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.search input{color:var(--ink);background:0 0;border:none;outline:none;width:100%}.tbl{border-top:1px solid var(--line-soft);flex:1;min-height:0;overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}th{z-index:2;background:var(--th-bg);color:var(--th-ink);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;height:40px;padding:0 16px;font-size:12px;font-weight:400;position:sticky;top:0}th.calc{background:var(--th-calc-bg);color:var(--th-calc-ink)}td{border-bottom:1px solid var(--line-soft);white-space:nowrap;height:44px;color:var(--ink-2);background:var(--surface);padding:0 16px}tr:hover td{background:var(--surface-2)}.r{text-align:right}td.strong{color:var(--ink);font-weight:700}td.neg{color:var(--red);font-weight:400}td.name{text-overflow:ellipsis;max-width:260px;overflow:hidden}td.ch{text-overflow:ellipsis;max-width:200px;overflow:hidden}.plus{color:var(--brand);font-weight:400}.sticky-l{z-index:1;position:sticky;left:0}th.sticky-l{z-index:3}.sticky-l:after{content:"";background:var(--line-soft);width:1px;position:absolute;top:0;bottom:0;right:0}table.dense th,table.dense td{padding:0 12px}table.dense th:first-child,table.dense td:first-child{padding-left:16px}table.dense th:last-child,table.dense td:last-child{padding-right:16px}table.dense th{height:48px;line-height:1.3}table.dense td{height:56px}.two{flex-direction:column;min-width:0;line-height:1.4;display:flex}.two>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.two .a{color:var(--ink);align-items:center;gap:6px;display:flex}.two small{color:var(--muted);font-size:12px}.two.oc>*{max-width:190px}.two.nm>*{max-width:230px}.prog{background:var(--line-soft);vertical-align:middle;border-radius:3px;width:88px;height:5px;margin-right:10px;display:inline-block;overflow:hidden}.prog i{background:var(--seg-rand);height:100%;display:block}.tfoot{border-top:1px solid var(--line-soft);height:44px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:0 16px;font-size:12px;display:flex}.tfoot .l{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.tfoot .cnt{flex:none}.pager{flex:none;align-items:center;gap:6px;display:flex}.pager button{border:1px solid var(--line);width:28px;height:28px;color:var(--ink-2);background:var(--surface);border-radius:7px;place-items:center;display:grid}.pager button[disabled]{opacity:.4;cursor:not-allowed}.pager span{text-align:center;min-width:64px;color:var(--ink-2)}.empty-row{text-align:center;color:var(--muted);padding:48px 16px}table.price th.grp{text-align:center;border-bottom:1px solid var(--line-soft);height:32px}table.price th.grp small{color:var(--faint);margin-left:6px;font-size:12px;font-weight:400}table.price thead tr:nth-child(2) th{height:34px;top:32px}table.price td.pc{font-variant-numeric:tabular-nums;cursor:text;width:104px}table.price td.pc.own{color:var(--brand-ink);background:var(--brand-tint);font-weight:700}table.price tr:hover td.pc.own{background:var(--brand-soft)}table.price td.pc.inh{color:#c3c9d2}table.price td.pc.need{color:var(--amber);font-weight:400}table.price td.pc:hover{box-shadow:inset 0 0 0 1px var(--line)}table.price td.pc.editing{box-shadow:inset 0 0 0 2px var(--brand);background:var(--surface);color:var(--ink);font-weight:400}table.price td.pc.editing.bad{box-shadow:inset 0 0 0 2px var(--red);background:var(--red-soft)}table.price td.pc input{text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;width:100%;padding:0}table.price .op{text-align:center;width:56px}table.price .op button{opacity:0;color:var(--faint);border-radius:7px;place-items:center;width:28px;height:28px;display:inline-grid}table.price tr:hover .op button{opacity:1}table.price .op button:hover{background:var(--red-soft);color:var(--red)}table.price th.sep,table.price td.sep{border-left:1px solid var(--line-soft)}.empty-state{text-align:center;color:var(--muted);justify-items:center;gap:10px;padding:56px 20px;display:grid}.empty-state h3{color:var(--ink);font-size:16px}.empty-state>svg{color:var(--brand);width:36px;height:36px}.empty-state p{max-width:560px}.rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.rule{padding:22px 24px}.rule.wide{grid-column:1/-1}.rule-h{align-items:center;gap:12px;margin-bottom:12px;display:flex}.rule-h i{font-style:normal;font-family:var(--mono);color:var(--brand);background:var(--brand-soft);border-radius:6px;padding:2px 7px;font-size:12px;font-weight:700}.rule-h h3{font-size:16px;font-weight:700}.rule p,.rule li{color:var(--ink-2);font-size:14px;line-height:1.7}.rule p+p{margin-top:6px}.rule ul{gap:8px;margin:4px 0 8px;list-style:none;display:grid}.rule li{align-items:baseline;gap:10px;display:flex}.rule li .tag{flex:none;justify-content:flex-start;min-width:82px}.formula{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--line-soft);color:var(--ink);border-radius:8px;margin:10px 0;padding:12px 14px;font-size:12px;line-height:1.9}.codes{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.codes span{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:6px;padding:2px 9px;font-size:12px}.mask{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#1018286b;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:600px;max-width:calc(100vw - 48px);max-height:calc(100vh - 80px);box-shadow:var(--shadow-pop);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.modal.wide{width:720px}.modal.sm{width:440px}.modal-h{justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 4px;display:flex}.modal-h b{font-size:16px;font-weight:700}.modal-h p{color:var(--muted);margin-top:2px;font-size:14px}.x{width:30px;height:30px;color:var(--faint);border-radius:8px;flex:none;place-items:center;display:grid}.x:hover{background:var(--slate-soft);color:var(--ink-2)}.modal-b{color:var(--ink-2);padding:16px 24px;font-size:14px;overflow:auto}.modal-f{border-top:1px solid var(--line-soft);justify-content:flex-end;align-items:center;gap:8px;padding:16px 24px;display:flex}.modal-f .hint{color:var(--muted);margin-right:auto;font-size:12px}.field+.field{margin-top:16px}.field label{color:var(--ink);margin-bottom:6px;font-size:12px;font-weight:400;display:block}.input{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;height:38px;padding:0 12px;display:flex}.input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.input input{background:0 0;border:none;outline:none;width:100%;min-width:0}.input .suf{color:var(--faint);flex:none}.callout{background:var(--surface-2);border:1px solid var(--line-soft);color:var(--ink-2);border-radius:9px;gap:10px;margin-top:16px;padding:11px 14px;font-size:12px;line-height:1.6;display:flex}.callout>svg{color:var(--muted);margin-top:2px}.callout.amber{background:var(--amber-soft);border-color:var(--amber-line)}.callout.amber>svg{color:var(--amber)}.callout.red{background:var(--red-soft);border-color:var(--red-line)}.callout.red>svg{color:var(--red)}.callout .chips-list{margin-top:8px}.diffs{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.diffs div{border:1px solid var(--line);border-radius:10px;padding:10px 14px}.diffs span{color:var(--muted);font-size:12px}.diffs b{font-size:20px;font-weight:700;line-height:1.3;display:block}.diffs .g b{color:var(--brand)}.diffs .a b{color:var(--amber)}.diffs .d b{color:var(--red)}.dtbl{border:1px solid var(--line);border-radius:10px;overflow:hidden}.dtbl th{height:36px;position:static}.dtbl td{height:40px}.dtbl tr:last-child td{border-bottom:none}.dtbl-more{color:var(--muted);margin-top:8px;font-size:12px}.toast{background:var(--ink);color:#fff;opacity:0;z-index:70;pointer-events:none;border-radius:11px;align-items:center;gap:10px;padding:11px 18px;font-size:14px;transition:all .25s;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%,20px);box-shadow:0 10px 30px #0003}.toast.on{opacity:1;transform:translate(-50%)}.toast svg{color:#6ee7b7;width:16px;height:16px}.loading{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:80;background:#f1f3f6d9;place-items:center;display:grid;position:fixed;inset:0}.loading .box{text-align:center}.loading .box p{margin-top:14px;font-weight:400}.loading .box small{color:var(--muted)}.spin{border:3px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;width:44px;height:44px;margin:0 auto;animation:1s linear infinite sp}@keyframes sp{to{transform:rotate(360deg)}}.upl{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}.bigdrop{background:var(--surface);text-align:center;cursor:pointer;border:1.5px dashed #d4d4d8;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:168px;transition:border-color .15s,background .15s;display:flex}.bigdrop:hover,.bigdrop.drag{border-color:var(--brand);background:var(--brand-tint)}.bigdrop .ico{background:var(--brand-soft);width:44px;height:44px;color:var(--brand);border-radius:12px;place-items:center;margin-bottom:4px;display:grid}.bigdrop .ico svg{width:22px;height:22px}.bigdrop h3{color:var(--ink);font-size:16px;font-weight:700}.bigdrop p{color:var(--muted);font-size:14px}.bigdrop p.faint{color:var(--faint);font-size:12px}.slimdrop{background:var(--surface);height:48px;color:var(--muted);cursor:pointer;border:1.5px dashed #d4d4d8;border-radius:10px;align-items:center;gap:10px;padding:0 16px;font-size:14px;display:flex}.slimdrop:hover,.slimdrop.drag{border-color:var(--brand);background:var(--brand-tint)}.slimdrop svg{color:var(--brand)}.slimdrop .link{margin-left:auto}.slots .card-h{padding:12px 20px}.slot{grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 20px;transition:background .15s;display:grid}.slot+.slot{border-top:1px solid var(--line-soft)}.slot.drag{background:var(--brand-tint)}.slot .m{min-width:0}.slot .t{align-items:center;gap:8px;font-size:14px;font-weight:400;display:flex}.slot .d{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12px;overflow:hidden}.slot .d b{color:var(--ink-2);font-weight:400}.slot .r{align-items:center;gap:8px;display:flex}.slot .wait{color:var(--faint);font-size:12px}.slot.ok .fico{background:var(--brand-soft);color:var(--brand)}.slot.bad{background:snow;align-items:start}.slot.bad .fico{background:var(--red-soft);color:var(--red)}.slot .facts{color:var(--muted);flex-wrap:wrap;gap:4px 18px;margin-top:6px;font-size:12px;display:flex}.slot .facts b{color:var(--ink);margin-right:3px;font-size:14px;font-weight:700}.opt-sep{background:var(--surface-2);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);color:var(--muted);align-items:center;gap:8px;padding:7px 20px;font-size:12px;display:flex}.slots .card-h+.opt-sep{border-top:none}.fix{border:1px solid var(--red-line);background:#fff;border-radius:10px;margin-top:10px;padding:12px 14px}.fix .h{color:var(--red);font-size:14px;font-weight:700}.fix .w{color:var(--ink-2);margin-top:4px;font-size:12px}.fix .miss-fields{margin-top:8px}.fix .a{gap:8px;margin-top:10px;display:flex}.miss-fields{flex-wrap:wrap;gap:6px;display:flex}.miss-fields span{background:var(--red-soft);color:var(--red);border-radius:5px;padding:1px 8px;font-size:12px;font-weight:400}.miss-fields span.more{background:var(--slate-soft);color:var(--muted)}.pbar{background:var(--line-soft);border-radius:3px;height:5px;overflow:hidden}.pbar i{background:var(--brand);width:40%;height:100%;animation:1.1s ease-in-out infinite ind;display:block}@keyframes ind{0%{transform:translate(-100%)}to{transform:translate(260%)}}.unk{border:1px solid var(--amber-line);background:var(--amber-soft);border-radius:12px;align-items:center;gap:12px;padding:12px 16px;display:flex}.unk .fico{color:var(--amber);background:#fff;width:36px;height:36px}.unk .m{flex:1;min-width:0}.unk .t{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:400;overflow:hidden}.unk .d{color:var(--ink-2);font-size:12px}.unk .a{flex:none;gap:8px;display:flex}.pre{position:sticky;top:24px}.pre .card-h{padding:14px 18px}.pre-list{padding:6px 0}.pre-it{grid-template-columns:22px minmax(0,1fr);gap:10px;padding:9px 18px;display:grid}.pre-it .s{border-radius:50%;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}.pre-it .s svg{stroke-width:2.6px;width:13px;height:13px}.pre-it .s.idle{border:1.5px dashed #d4d4d8}.pre-it .s.ok{background:var(--brand);color:#fff}.pre-it .s.err{background:var(--red);color:#fff}.pre-it .s.warn{background:var(--amber-soft);color:var(--amber)}.pre-it .s.lk{background:var(--slate-soft);color:var(--slate)}.pre-it .t{align-items:center;gap:6px;font-size:14px;font-weight:400;display:flex}.pre-it .t .link{margin-left:auto;font-size:12px}.pre-it .d{color:var(--muted);margin-top:1px;font-size:12px;line-height:1.55}.pre-it .d b{color:var(--ink-2);font-weight:400}.pre-it.err .d{color:var(--red)}.pre-go{border-top:1px solid var(--line-soft);padding:14px 18px 18px}.pre-go .btn{width:100%;height:44px;font-size:16px}.pre-go .btn+.btn{margin-top:8px}.pre-go .hint{color:var(--muted);text-align:center;margin-top:8px;font-size:12px}.pre-go .hint.bad{color:var(--red);font-weight:400}.last{margin-top:16px;padding:14px 18px}.last .l{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.last .t{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-weight:700;display:flex}.last .d{color:var(--muted);margin-top:2px;font-size:12px}.crumb{align-items:center;gap:6px;display:inline-flex}.crumb a{color:var(--muted);cursor:pointer}.crumb a:hover{color:var(--link)}.crumb svg{color:var(--faint)}.ph-title .tag{letter-spacing:0;font-size:12px}.done-bar{border:1px solid var(--line);background:var(--brand-tint);border-radius:12px;align-items:center;gap:14px;padding:14px 18px;display:flex}.done-bar .ic{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid}.done-bar .ic svg{width:18px;height:18px}.done-bar .m{flex:1;min-width:0}.done-bar b{font-size:14px}.done-bar .d{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12px;overflow:hidden}.done-bar .a{flex:none;gap:8px;display:flex}.kpi.click{cursor:pointer;transition:border-color .15s,box-shadow .15s}.kpi.click:hover{border-color:var(--line);box-shadow:0 0 0 3px var(--brand-soft)}.kpi .go2{border-top:1px dashed var(--line);color:var(--link);align-items:center;gap:4px;margin-top:10px;padding-top:10px;font-size:12px;font-weight:400;display:flex}.review .card-h{padding:12px 20px}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.rv{align-items:flex-start;gap:10px;min-width:0;padding:11px 20px;font-size:14px;display:flex}.rv:nth-child(n+3){border-top:1px solid var(--line-soft)}.rv:nth-child(2n){border-left:1px solid var(--line-soft)}.rv>i{border-radius:50%;flex:none;width:7px;height:7px;margin-top:7px}.rv .m{flex:1;min-width:0}.rv .t{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:400;overflow:hidden}.rv .d{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-height:18px;font-size:12px;overflow:hidden}.rv .link{flex:none;margin-top:1px;font-size:12px}.split{display:inline-flex}.split .btn:first-child{border-radius:var(--r-md) 0 0 var(--r-md)}.split .btn:last-child{border-radius:0 var(--r-md) var(--r-md) 0;border-left:1px solid #ffffff40;padding:0 10px}.menu-wrap{position:relative}.menu{border:1px solid var(--line);width:300px;box-shadow:var(--shadow-pop);z-index:20;background:#fff;border-radius:12px;padding:6px;position:absolute;top:44px;right:0}.menu a{cursor:pointer;border-radius:8px;gap:10px;padding:9px 10px;display:flex}.menu a:hover{background:var(--surface-2)}.menu a svg{color:var(--muted);margin-top:2px}.menu a b{font-size:14px;font-weight:400;display:block}.menu a span{color:var(--muted);font-size:12px}.ver{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 4px;display:grid}.ver div{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 14px}.ver span{color:var(--muted);font-size:12px}.ver b{font-size:20px;font-weight:700;line-height:1.35;display:block}.ver b.st-b{font-size:14px;line-height:1.9}.keep{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.keep div{color:var(--ink-2);align-items:center;gap:8px;font-size:12px;display:flex}.keep svg{width:14px;height:14px}.keep .y svg{color:var(--amber)}.keep .n svg{color:var(--brand)}.month-h{border-bottom:1px solid var(--line-soft);align-items:baseline;gap:12px;padding:14px 20px;display:flex}.month-h h3{font-size:16px;font-weight:700}.month-h span{color:var(--muted);font-size:12px}.hist td{height:60px}.hist .delta{color:var(--amber);font-size:12px;font-weight:400;display:block}.hist tr.exp td{background:var(--brand-tint)}.hist tr.exp:hover td{background:var(--brand-soft)}.hist .acts{justify-content:flex-end;gap:14px;display:flex}.hist .old-rule{color:var(--amber);margin-top:2px;font-size:12px}.hist .two>*{max-width:260px}.hist .cur-run{color:var(--muted);margin-top:2px;font-size:12px}.health{flex:none;grid-template-columns:minmax(0,1.25fr) minmax(0,2fr);align-items:stretch;display:grid}.health .ok-side{border-right:1px solid var(--line-soft);gap:14px;min-width:0;padding:16px 20px;display:flex}.health .ok-side .ic{background:var(--slate-soft);width:40px;height:40px;color:var(--slate);border-radius:50%;flex:none;place-items:center;display:grid}.health .ok-side .ic svg{width:20px;height:20px}.health.ok .ok-side .ic{background:var(--brand);color:#fff}.health.warn .ok-side .ic{background:var(--amber-soft);color:var(--amber)}.health.warn{border-color:var(--amber-line)}.health .ok-side b{font-size:16px}.health .ok-side p{color:var(--ink-2);margin-top:3px;font-size:12px;line-height:1.6}.health .nums{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.health .nums>div{min-width:0;padding:14px 18px}.health .nums>div+div{border-left:1px solid var(--line-soft)}.health .nums span{color:var(--muted);font-size:12px;display:block}.health .nums b{letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1.3;display:block}.health .nums b .unit{color:var(--muted);letter-spacing:0;margin-left:4px;font-size:12px;font-weight:400;display:inline}.health .nums small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}td.used{font-variant-numeric:tabular-nums;width:180px}td.used .nocalc{color:var(--muted);margin-right:10px;font-size:12px}.ubar{background:var(--line-soft);vertical-align:middle;border-radius:3px;width:56px;height:5px;margin-left:10px;display:inline-block;overflow:hidden}.ubar i{background:var(--brand);height:100%;display:block}table.price td.pc.soft{color:var(--muted)}.kbd{border:1px solid var(--line);height:20px;color:var(--ink-2);background:#fff;border-bottom-width:2px;border-radius:5px;align-items:center;margin:0 2px;padding:0 6px;font-size:12px;display:inline-flex}.side .nav a .cnt{color:var(--side-muted);margin-left:auto;font-size:12px;font-weight:400}
