:root{--bg: #f4f3ef;--surface: #ffffff;--surface-2: #faf9f6;--ink: #17202b;--ink-2: #3a4553;--muted: #5d6572;--line: #e2dfd8;--line-2: #ece9e3;--accent: #c2410c;--accent-ink: #9a3412;--accent-soft: #fff1e8;--steel: #2c5282;--steel-soft: #eaf1f9;--ok: #2f7d4f;--ok-soft: #e8f5ec;--warn: #a16207;--warn-soft: #fdf6e3;--bad: #b42318;--bad-soft: #fdecea;--nav: #151c25;--nav-ink: #c9d1db;--radius: 6px;--shadow: 0 1px 2px rgba(20, 24, 31, .06), 0 2px 8px rgba(20, 24, 31, .05);--font: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:13.5px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--steel);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}.num,.mono{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.clip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{text-align:right}.grow{flex:1;min-width:0}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:8px}.spacer{flex:1}.hidden{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav a:focus-visible{outline-color:#fff;outline-offset:-2px}tr.clickable:focus-visible{outline-offset:-2px;background:var(--accent-soft)}.skip-link{position:absolute;left:8px;top:-40px;z-index:100;background:var(--ink);color:#fff;padding:8px 12px;border-radius:6px}.skip-link:focus{top:8px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}button,[role=button],summary,label.check,select{cursor:pointer}.btn,.tabs button,.seg button,.ctab,.rung,.nav a{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}.shell{display:grid;grid-template-columns:216px 1fr;height:100%}.nav{background:var(--nav);color:var(--nav-ink);display:flex;flex-direction:column;padding:14px 10px;gap:2px;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;color:#fff;font-weight:700;font-size:17px;letter-spacing:-.02em}.brand-mark{width:26px;height:18px;border-radius:3px;background:var(--accent);position:relative}.brand-mark:after{content:"";position:absolute;top:3px;right:4px;bottom:3px;left:4px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.9) 0 2px,transparent 2px 5px)}.nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8e99a8;padding:14px 10px 4px;white-space:nowrap}.nav a{color:var(--nav-ink);padding:7px 10px;border-radius:5px;display:flex;align-items:center;gap:9px;white-space:nowrap}.nav a:hover{background:#1f2833;text-decoration:none;color:#fff}.nav a.active{background:#26303c;color:#fff;box-shadow:inset 2px 0 0 var(--accent)}.nav .count{margin-left:auto;background:var(--accent);color:#fff;border-radius:9px;font-size:11px;padding:0 6px}.nav-foot{margin-top:auto;padding:12px 8px 2px;border-top:1px solid #242d38;font-size:12px}.nav-foot .who{color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line);min-height:52px}.topbar h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{padding:18px 20px 40px;overflow:auto;flex:1;min-height:0}.content.flush{padding:0;overflow:hidden;display:flex;flex-direction:column}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover{border-color:#cfcbc2;background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink)}.btn.dark{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.danger{color:var(--bad)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--line-2)}.btn.sm{height:26px;padding:0 8px;font-size:12.5px}.btn.icon{width:32px;padding:0}.btn.sm.icon{width:26px}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);height:32px;padding:0 9px;width:100%;min-width:0}textarea{height:auto;padding:7px 9px;resize:vertical;min-height:64px}input:focus,select:focus,textarea:focus{outline:2px solid rgba(194,65,12,.25);border-color:var(--accent)}input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent)}input.sm,select.sm{height:26px;font-size:12.5px;padding:0 6px}label.check{display:inline-flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>span{font-size:12px;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field .hint{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid{display:grid;gap:12px 14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}.span2{grid-column:span 2}.span3{grid-column:span 3}.spanall{grid-column:1 / -1}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.card-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line-2)}.card-b{padding:14px}.stack{display:flex;flex-direction:column;gap:14px}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse;table-layout:auto}table.data th,table.data td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px;padding:7px 10px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle}table.data th{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);position:sticky;top:0;z-index:1}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data tbody tr:hover{background:#fbfaf7}table.data tbody tr.clickable{cursor:pointer}table.data tr.selected{background:var(--accent-soft)!important}table.data.compact th,table.data.compact td{padding:5px 8px}.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:10px;font-size:11.5px;font-weight:500;background:var(--line-2);color:var(--ink-2);white-space:nowrap}.badge.accent{background:var(--accent-soft);color:var(--accent-ink)}.badge.steel{background:var(--steel-soft);color:var(--steel)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.dark{background:var(--ink);color:#fff}.src-code{font-family:var(--mono);font-weight:500;letter-spacing:.04em}.dot{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}.bar{height:8px;background:var(--line-2);border-radius:4px;overflow:hidden;position:relative}.bar>i{position:absolute;left:0;top:0;bottom:0;background:var(--steel);border-radius:4px;transition:width .25s}.bar.weight>i{background:#7c6f5b}.bar.over>i{background:var(--bad)}.notice{padding:9px 12px;border-radius:var(--radius);background:var(--warn-soft);color:#6b4a07;border:1px solid #f1e2b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notice.bad{background:var(--bad-soft);color:var(--bad);border-color:#f5c6c2}.notice.ok{background:var(--ok-soft);color:var(--ok);border-color:#c7e6d1}.notice.info{background:var(--steel-soft);color:var(--steel);border-color:#cddcee}.error-text{color:var(--bad);font-size:12.5px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 14px;overflow-x:auto;scrollbar-width:none;flex:none}.tabs::-webkit-scrollbar{display:none}.tabs button{border:0;background:none;font:inherit;padding:9px 11px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;font-weight:500;margin-bottom:-1px}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.tabs button .badge{margin-left:5px;height:17px;font-size:10.5px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f141a73;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow:auto}.modal{background:var(--surface);border-radius:10px;width:100%;max-width:560px;box-shadow:0 20px 50px #00000040}.modal.wide{max-width:860px}.modal-h{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line-2);gap:10px}.modal-b{padding:16px}.modal-f{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line-2);background:var(--surface-2);border-radius:0 0 10px 10px}.toast-wrap{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:60}.toast{background:var(--ink);color:#fff;padding:10px 14px;border-radius:7px;box-shadow:var(--shadow);max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast.bad{background:var(--bad)}.toast.ok{background:var(--ok)}.empty{padding:36px 16px;text-align:center;color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 14px}.kpi .k-l{font-size:12px;color:var(--muted);white-space:nowrap}.kpi .k-v{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.toolbar input[type=search]{max-width:280px}.toolbar select{width:auto}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.seg button{border:0;background:none;font:inherit;padding:0 10px;height:28px;cursor:pointer;color:var(--muted);white-space:nowrap}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--ink);color:#fff}.auth{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr}.auth-art{background:var(--nav);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-art h2{font-size:34px;line-height:1.1;max-width:420px;letter-spacing:-.03em}.auth-art p{color:var(--nav-ink);max-width:400px;line-height:1.5}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px}.auth-form form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}.crates{position:absolute;right:-40px;bottom:60px;display:grid;grid-template-columns:repeat(6,54px);gap:5px;transform:rotate(-8deg);opacity:.9}.crates i{height:38px;border-radius:3px;background:#26303c}.crates i:nth-child(3n){background:var(--accent)}.crates i:nth-child(5n){background:#3d5a80}.builder{display:grid;grid-template-columns:280px minmax(0,1fr) minmax(400px,36%);flex:1;min-height:0}.builder.no-catalog{grid-template-columns:minmax(0,1fr) minmax(420px,40%)}.builder-top{display:flex;flex-direction:column;gap:6px;padding:10px 20px 8px;background:var(--surface);border-bottom:1px solid var(--line)}.builder-top .row1{display:flex;align-items:center;gap:10px;min-width:0}.builder-top .row2{display:flex;align-items:center;gap:12px;min-width:0}.builder>section{min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface)}.builder>section:last-child{border-right:0}.panel-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line-2);min-height:44px}.panel-scroll{overflow:auto;flex:1;min-height:0}.cat-item{display:flex;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line-2);cursor:pointer;align-items:center}.cat-item:hover{background:var(--surface-2)}.cat-item .thumb{width:34px;height:34px;border-radius:5px;background:var(--line-2);flex:none;display:grid;place-items:center;color:var(--muted);font-size:11px;overflow:hidden}.cat-item .thumb img{width:100%;height:100%;object-fit:cover}.viewer{position:relative;flex:1;min-height:0;background:linear-gradient(#eef0f2,#dfe3e7)}.viewer-tools{position:absolute;top:10px;left:10px;right:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;pointer-events:none}.viewer-tools>*{pointer-events:auto}.viewer-hover{position:absolute;left:10px;bottom:10px;background:#151c25eb;color:#fff;padding:8px 10px;border-radius:6px;font-size:12.5px;pointer-events:none;white-space:nowrap}.guide-label{background:#151c25d1;color:#fff;font-size:11px;padding:2px 6px;border-radius:4px;white-space:nowrap;font-family:var(--font)}.guide-label.over{background:#b42318;font-weight:600;font-size:12px}.viewer-stats{position:absolute;right:10px;bottom:10px;background:#fffffff0;border:1px solid var(--line);padding:8px 10px;border-radius:6px;font-size:12px;white-space:nowrap}.ladder{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface)}.rung{border:1px solid var(--line);border-radius:7px;padding:8px 10px;cursor:pointer;background:var(--surface);min-width:0}.rung.focus{border-color:var(--accent);box-shadow:0 0 0 2px #c2410c26}.rung.over{opacity:.65}.rung .rung-h{display:flex;align-items:center;gap:6px;margin-bottom:6px;white-space:nowrap}.rung .rung-row{display:grid;grid-template-columns:22px 1fr 44px;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);margin-top:3px}.ctabs{display:flex;gap:4px;padding:8px 12px 0;background:var(--surface);border-bottom:1px solid var(--line);overflow-x:auto}.ctab{border:1px solid var(--line);border-bottom:0;background:var(--surface-2);border-radius:7px 7px 0 0;padding:6px 12px;cursor:pointer;font:inherit;display:flex;gap:8px;align-items:center;white-space:nowrap}.ctab.active{background:var(--surface);box-shadow:inset 0 2px 0 var(--accent)}.ctab.drop{outline:2px dashed var(--accent)}.line-row td{background:var(--surface)}.line-row[draggable=true]{cursor:grab}.qty-input{width:72px;text-align:right}.totals{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:12px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}.totals div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.totals .big{font-size:16px;font-weight:600}.status-rail{display:flex;align-items:center;gap:0;overflow-x:auto}.status-rail .st{display:flex;align-items:center;gap:6px;padding:0 10px;height:26px;font-size:12px;color:var(--muted);white-space:nowrap;position:relative}.status-rail .st+.st:before{content:"";width:14px;height:1px;background:var(--line);position:absolute;left:-7px}.status-rail .st i{width:8px;height:8px;border-radius:50%;background:var(--line)}.status-rail .st.done{color:var(--ink-2)}.status-rail .st.done i{background:var(--ok)}.status-rail .st.current{color:var(--ink);font-weight:600}.status-rail .st.current i{background:var(--accent);box-shadow:0 0 0 3px #c2410c2e}.source-card{border:1px solid var(--line);border-radius:7px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;min-width:0}.source-card .sc-top{display:flex;align-items:center;gap:8px}.source-card .sc-price{margin-left:auto;font-weight:600;white-space:nowrap;text-align:right}.source-card .sc-text{white-space:normal;overflow-wrap:anywhere;line-height:1.4}input[type=radio]{width:15px;height:15px;padding:0;flex:none;accent-color:var(--accent)}.source-card.selected{border-color:var(--accent);background:var(--accent-soft)}.source-card+.source-card{margin-top:8px}.comment{padding:10px 0;border-bottom:1px solid var(--line-2)}.comment .c-body{margin-top:3px;line-height:1.45;white-space:pre-line}.comment.reply{margin-left:22px}.comment.internal .c-body{background:var(--warn-soft);padding:6px 8px;border-radius:5px}.photo-strip{display:flex;gap:8px}.photo-strip img{width:120px;height:120px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}@media (max-width: 1100px){.content .builder,.content .builder.no-catalog{grid-template-columns:1fr;grid-auto-rows:minmax(420px,auto);overflow:auto}.builder>section{border-right:0;border-bottom:1px solid var(--line)}.grid.g4,.grid.g6{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.nav{flex-direction:row;overflow-x:auto;padding:8px;align-items:center}.nav .brand{padding:0 10px 0 4px}.nav-section{display:none}.nav-foot{margin:0 0 0 auto;border:0;padding:0 8px;display:flex;gap:8px;align-items:center}.auth{grid-template-columns:1fr}.auth-art{display:none}.grid.g2,.grid.g3{grid-template-columns:1fr}.topbar{flex-wrap:wrap}}@media (max-width: 1500px){.builder{grid-template-columns:240px minmax(0,1fr) minmax(380px,38%)}.tabs button{padding:9px 8px}}.sap-window{font-size:13px}.sap-header{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px;padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:6px;margin-bottom:12px}.sap-tabs{display:flex;gap:2px;border-bottom:2px solid var(--line)}.sap-tab{border:1px solid var(--line);border-bottom:none;background:var(--bg);color:var(--muted);font:inherit;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:5px 5px 0 0;white-space:nowrap;position:relative;top:1px;cursor:pointer}.sap-tab:hover{color:var(--ink)}.sap-tab.active{background:var(--surface);color:var(--ink);border-bottom:2px solid var(--surface);box-shadow:0 -2px 0 0 var(--accent) inset}.sap-pane{border:1px solid var(--line);border-top:none;border-radius:0 0 6px 6px;padding:14px 12px;min-height:260px}.sap-form{display:grid;grid-template-columns:1fr 1fr;gap:2px 26px}.sap-row{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;gap:10px;padding:3px 0;white-space:nowrap}.sap-row.span2{grid-column:1 / -1}.sap-row.tall{align-items:start}.sap-row label{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sap-row input:not([type=checkbox]),.sap-row select,.sap-row textarea{padding:4px 7px;font-size:12.5px;width:100%;min-width:0}.sap-row input[type=number]{text-align:right}.sap-row .row input{flex:1}.sap-chk{width:15px;height:15px}.sap-read{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sap-sub{display:flex;align-items:center;gap:14px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);border-bottom:1px solid var(--line);padding-bottom:4px;margin:14px 0 8px;white-space:nowrap}.sap-sub:first-child{margin-top:0}.sap-inline-chk{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}.sap-inline-chk input{width:14px;height:14px}.sap-footer{display:flex;align-items:center;gap:10px;padding-top:14px;white-space:nowrap}@media (max-width: 860px){.sap-header,.sap-form{grid-template-columns:1fr}.sap-row{grid-template-columns:120px minmax(0,1fr)}}.sap-footer .grow{flex:1;min-width:0;padding:0 16px}.sap-bounce{animation:sap-bounce .6s ease}@keyframes sap-bounce{0%,to{transform:translateY(0)}20%{transform:translateY(-8px) scale(1.06)}40%{transform:translateY(0)}60%{transform:translateY(-4px) scale(1.03)}80%{transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.sap-bounce{animation:sap-shake-none .6s;outline:3px solid var(--accent-soft)}}.vtip{position:relative;display:block;min-width:0}.vtip>input,.vtip>textarea{width:100%}.vtip:focus-within:after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 4px);z-index:30;pointer-events:none;background:var(--ink);color:var(--surface);font-size:11.5px;font-weight:500;letter-spacing:0;text-transform:none;padding:4px 8px;border-radius:4px;white-space:nowrap;box-shadow:0 4px 12px #0000002e}.sap-window .sap-header{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 18px;padding:8px 12px;margin-bottom:10px}.sap-window .sap-header .span2{grid-column:span 2}.sap-window .sap-header .sap-row{grid-template-columns:88px minmax(0,1fr)}.sap-window .sap-row{padding:2px 0;gap:8px}.sap-window .sap-row input:not([type=checkbox]),.sap-window .sap-row select{height:30px;padding:3px 8px}.sap-window .sap-pane{padding:10px 12px;min-height:0}.sap-tabs{align-items:flex-end}.sap-tab{padding:6px 12px}.sap-tabs-note{margin-left:auto;padding:0 4px 6px;font-size:11.5px;color:var(--muted);white-space:nowrap}.sap-form.c3{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 18px}.sap-form.c3 .sap-row{grid-template-columns:118px minmax(0,1fr)}.sap-grid{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12.5px}.sap-grid col,.sap-grid th,.sap-grid td{white-space:nowrap}.sap-grid thead th{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 4px 6px;border-bottom:1px solid var(--line)}.sap-grid thead th:first-child{width:112px}.sap-grid thead th:nth-child(2){width:64px}.sap-grid thead th:nth-child(3){width:150px}.sap-grid .num{text-align:right}.sap-grid tbody th{text-align:left;font-weight:600;color:var(--ink);padding:3px 6px 3px 0;overflow:hidden;text-overflow:ellipsis}.sap-grid td{padding:3px 4px;border-bottom:1px solid var(--line-2)}.sap-grid tbody tr:last-child td,.sap-grid tbody tr:last-child th{border-bottom:0}.sap-grid tbody th{border-bottom:1px solid var(--line-2)}.sap-grid input{width:100%;height:28px;padding:3px 6px;font-size:12.5px;min-width:0}.sap-grid input.num,.sap-grid .row input{text-align:right}.sap-grid .row{gap:0}.sap-grid tr.off th label{color:var(--muted)}.sap-grid tr.off td{font-size:12px}.sap-grid tbody tr:hover td,.sap-grid tbody tr:hover th{background:var(--surface-2, var(--bg))}.sap-pallet{display:flex;align-items:center;gap:18px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);white-space:nowrap}.sap-pallet-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}.sap-mini{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600}.sap-mini .muted{font-weight:400;font-size:11.5px}.sap-mini input{width:64px;height:28px;padding:3px 6px;text-align:right}.sap-mini .vtip{display:inline-block}@media (max-width: 860px){.sap-window .sap-header,.sap-form.c3{grid-template-columns:1fr}.sap-window .sap-header .span2{grid-column:auto}.sap-pane{overflow-x:auto}.sap-grid{min-width:720px}}.row.vtip{display:flex;min-width:0}.row.vtip>input{width:auto;flex:1 1 0;min-width:0}.row.vtip>span.muted{flex:none}.sap-form.c3 .sap-row{grid-template-columns:152px minmax(0,1fr)}.iv{display:flex;flex-direction:column;gap:14px;max-width:1180px}.iv-top{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:var(--shadow)}.iv-gallery{display:flex;flex-direction:column;gap:8px;min-width:0}.iv-photo{aspect-ratio:1 / 1;border-radius:6px;background:var(--surface-2);border:1px solid var(--line-2);overflow:hidden;display:grid;place-items:center}.iv-photo img{width:100%;height:100%;object-fit:contain;display:block}.iv-nophoto{color:var(--muted);font-size:13px}.iv-thumbs{display:flex;gap:6px;overflow-x:auto}.iv-thumbs button{flex:none;width:52px;height:52px;padding:0;border-radius:5px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;overflow:hidden}.iv-thumbs button.on{border:2px solid var(--accent)}.iv-thumbs img{width:100%;height:100%;object-fit:cover;display:block}.iv-gallery>.btn{align-self:flex-start}.iv-summary{min-width:0;display:flex;flex-direction:column;gap:14px}.iv-chips{display:flex;flex-wrap:wrap;gap:6px}.iv-details{margin:0;padding-top:12px;border-top:1px solid var(--line-2);line-height:1.55;color:var(--ink);max-width:75ch;white-space:pre-line}.iv-specs{display:grid;gap:0 24px;margin:0}.iv-specs.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.iv-specs.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.iv-specs>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px;padding:7px 0;border-bottom:1px solid var(--line-2);align-items:baseline}.iv-specs dt{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iv-specs dd{margin:0;font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iv-section{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:14px 16px}.iv-section>header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.iv-section>header h2{font-size:15px;font-weight:650;margin:0;flex:1}.iv-empty{margin:0;color:var(--muted);font-size:13px}.iv-note{margin:10px 0 0;color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iv-pack tbody th{text-align:left;font-weight:600}.iv-docs{list-style:none;margin:0;padding:0}.iv-docs li{display:flex;gap:12px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line-2);white-space:nowrap}.iv-docs li:last-child{border-bottom:0}.iv-docs a{font-weight:500;overflow:hidden;text-overflow:ellipsis}.iv-docs .muted{font-size:12px;text-transform:capitalize}.modal.wide:has(.iv-panel){max-width:1120px}.iv-panel{max-height:72vh;overflow:auto}@media (max-width: 1100px){.iv-specs.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.iv-top,.iv-specs.c2,.iv-specs.c3{grid-template-columns:1fr}}.iv-pack tbody th{text-transform:none;letter-spacing:0;background:none;color:var(--ink);font-size:13px;position:static}.iv-photo{max-height:320px}.iv-specs.c2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.iv-specs.c3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.iv-specs>div{grid-template-columns:128px minmax(0,1fr)}.sap-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 26px}.sap-split>div{display:flex;flex-direction:column}.sap-split>div:first-child{border-right:1px solid var(--line-2);padding-right:26px}@media (max-width: 860px){.sap-split{grid-template-columns:1fr}.sap-split>div:first-child{border-right:0;padding-right:0}}.imp-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;min-height:220px;padding:28px;border:2px dashed var(--line);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s ease-out,background .15s ease-out}.imp-drop svg{color:var(--accent);margin-bottom:4px}.imp-drop strong{font-size:15px}.imp-drop .muted{font-size:13px}.imp-drop:hover,.imp-drop:focus-visible{border-color:var(--accent)}.imp-drop.over{border-color:var(--accent);background:var(--accent-soft)}.imp-head{gap:8px}.imp-filter{display:flex;align-items:center;gap:4px;padding:8px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap;overflow-x:auto}.imp-filter button{font:inherit;font-size:12.5px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:3px 10px;cursor:pointer}.imp-filter button.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.imp-filter button.has-err:not(.on){color:var(--bad);border-color:var(--bad)}.imp-skip{margin-left:8px}.imp-table{max-height:60vh;overflow:auto}.imp-table td:nth-child(3){max-width:320px;overflow:hidden;text-overflow:ellipsis}.imp-table td:last-child{max-width:520px;overflow:hidden;text-overflow:ellipsis}tr.imp-err td{background:color-mix(in srgb,var(--bad) 6%,transparent)}.imp-msg{color:var(--bad);font-weight:500}.imp-done{display:flex;align-items:center;gap:8px;white-space:nowrap}.imp-tally{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.imp-tally>div{display:flex;flex-direction:column;gap:2px;padding:12px 16px;min-width:0;white-space:nowrap}.imp-tally>div+div{border-left:1px solid var(--line-2)}.imp-tally .k{font-size:12px;color:var(--muted)}.imp-tally .v{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.2}.imp-tally .sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.imp-tally .warn .v{color:var(--bad)}@media (max-width: 860px){.imp-tally{grid-template-columns:repeat(2,minmax(0,1fr))}.imp-tally>div:nth-child(3){border-left:0}.imp-tally>div:nth-child(n+3){border-top:1px solid var(--line-2)}}.tabs-bar{margin-bottom:14px}.tabs.big{gap:6px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);box-shadow:var(--shadow)}.tabs.big button{border:0;margin:0;border-radius:7px;padding:9px 16px;font-size:14px;font-weight:600;color:var(--muted)}.tabs.big button:hover{color:var(--ink);background:var(--surface)}.tabs.big button.active{color:#fff;background:var(--ink);box-shadow:0 1px 3px #0000002e}.tabs.big button.active .badge{background:#ffffff2e;color:#fff}.dd-cats td{vertical-align:middle}.dd-name{display:flex;align-items:center;gap:8px}.dd-name input{width:160px}.dd-subs{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dd-chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 2px 0 8px;border-radius:12px;background:var(--steel-soft);color:var(--steel);font-size:12px;white-space:nowrap}.dd-chip.off{background:var(--line-2);color:var(--muted)}.dd-chip input{border:0;background:transparent;color:inherit;font:inherit;padding:0;height:20px;width:auto;min-width:0}.dd-chip em{font-style:normal;font-size:10.5px;opacity:.7}.dd-chip button{border:0;background:none;color:inherit;opacity:.55;cursor:pointer;font-size:11px;padding:0 5px;height:20px;border-radius:10px}.dd-chip button:hover{opacity:1;background:#0000000f}.dd-add{width:90px;height:24px;border-radius:12px!important;padding:0 9px!important;font-size:12px;border-style:dashed!important}tr.muted-row td{color:var(--muted)}.totp-input{font-size:22px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}.items-scroll{overflow:auto;max-height:calc(100vh - 190px);scrollbar-width:auto;scrollbar-color:#b9b4aa var(--surface-2)}.items-scroll::-webkit-scrollbar{width:12px;height:12px}.items-scroll::-webkit-scrollbar-track{background:var(--surface-2)}.items-scroll::-webkit-scrollbar-thumb{background:#c9c4ba;border-radius:8px;border:3px solid var(--surface-2)}.items-scroll::-webkit-scrollbar-thumb:hover{background:#a9a398}.items-scroll table{width:max-content;min-width:100%}.items-scroll td.wide{max-width:360px;overflow:hidden;text-overflow:ellipsis}.col-pick{list-style:none;margin:0;padding:0;max-height:56vh;overflow:auto;border:1px solid var(--line);border-radius:8px}.col-pick li{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 6px;border-bottom:1px solid var(--line-2);background:var(--surface);white-space:nowrap;cursor:grab}.col-pick li:last-child{border-bottom:0}.col-pick li:not(.on) label{color:var(--muted)}.col-pick li.dragging{background:var(--accent-soft)}.col-pick .grip{color:var(--muted);font-size:12px;letter-spacing:-2px;width:14px}.col-pick label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px}.col-pick .btn.sm{padding:0 7px;height:24px}.me-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}.me-field{display:flex;flex-direction:column;gap:4px;min-width:0}.me-field>span{font-size:12px;color:var(--muted);white-space:nowrap}.me-field select,.me-field input{width:100%;min-width:0}.me-search{grid-column:span 2}.me-foot{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line-2);white-space:nowrap}.me-count{font-size:13.5px}.me-count strong{font-variant-numeric:tabular-nums}.btn.disabled{opacity:.5;pointer-events:none}@media (max-width: 1100px){.me-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.me-grid{grid-template-columns:1fr}.me-search{grid-column:auto}}tr.imp-warn td{background:color-mix(in srgb,#d97706 7%,transparent)}.imp-warn-msg{color:#a15c07;font-weight:500}.imp-filter button.has-warn:not(.on){color:#a15c07;border-color:#d9a441}.imp-tally{grid-template-columns:120px repeat(var(--cols),minmax(0,1fr))}.imp-tally-title{display:flex;align-items:center;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--surface-2);border-radius:8px 0 0 8px}@media (max-width: 860px){.imp-tally{grid-template-columns:repeat(2,minmax(0,1fr))}.imp-tally-title{grid-column:1 / -1;border-radius:8px 8px 0 0}}.imp-tally>div{overflow:hidden}.imp-tally .k{overflow:hidden;text-overflow:ellipsis}@media (min-width: 861px){.shell{grid-template-columns:184px 1fr}.nav{padding:10px 8px;gap:1px;position:sticky;top:0;height:100vh}.brand{padding:2px 6px 10px;font-size:15.5px;gap:8px}.brand-mark{width:22px;height:15px}.nav-section{font-size:10.5px;padding:10px 8px 3px}.nav a{padding:5px 8px;font-size:13px;gap:7px;border-radius:4px}.nav .count{font-size:10.5px;padding:0 5px}.nav-foot{padding:8px 6px 0;font-size:11.5px}}.vd-top{grid-template-columns:minmax(200px,260px) minmax(0,1fr)}.vd-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:22px 14px;border-radius:6px;background:var(--nav);color:#fff;text-align:center}.vd-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:40px;font-weight:700;letter-spacing:.12em;line-height:1}.vd-cap{font-size:11.5px;color:#9aa6b4;white-space:nowrap}.vd-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:100%;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}.vd-stats div{display:flex;flex-direction:column;gap:2px}.vd-stats strong{font-size:20px;font-variant-numeric:tabular-nums}.vd-stats span{font-size:11px;color:#9aa6b4}.vd-two{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:start}.vd-two td{max-width:280px;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1100px){.vd-two{grid-template-columns:1fr}}@media (max-width: 860px){.vd-top{grid-template-columns:1fr}}.dd-chip button:disabled,.btn.ghost.danger:disabled{opacity:.25;cursor:not-allowed}.dd-chip button:disabled:hover{background:none}.vd-wire{font-size:10.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--bad);background:var(--bad-soft);padding:1px 7px;border-radius:10px}.vd-contact{grid-template-columns:repeat(2,minmax(0,1fr))}.vd-addc{padding:8px 0 2px}.home{min-height:100%;background:var(--bg);overflow:auto}.home-top{display:flex;align-items:center;gap:8px;padding:14px 28px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}.home-top .brand{text-decoration:none}.hero{display:grid;grid-template-columns:minmax(360px,440px) minmax(0,1fr);gap:24px;padding:28px}.hero-copy h1{font-size:34px;line-height:1.1;letter-spacing:-.03em;margin:0 0 10px}.hero-copy>p{line-height:1.5;margin:0 0 18px}.hero-step{font-weight:600;margin:14px 0 6px;white-space:nowrap}.hero-sizes button{height:34px;padding:0 16px;font-weight:600}.hero-sizes button.active{background:var(--ink);color:#fff}.hero-items{display:flex;flex-direction:column;gap:4px}.hero-item{display:grid;grid-template-columns:10px minmax(0,1fr) 28px 64px 28px;gap:6px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.hero-item.on{border-color:#cfcbc2;box-shadow:var(--shadow)}.hero-item>i{width:10px;height:28px;border-radius:2px}.hero-item input{text-align:right;width:64px}.hi-name{min-width:0;white-space:nowrap}.hero-go{margin-top:14px;gap:12px}.btn.lg{height:42px;padding:0 26px;font-size:15px;font-weight:600}.hero-result{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:14px}.hero-result>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-result b{display:block;font-size:17px}.hero-result span{font-size:12px;color:var(--muted)}.hero-result .bad b{color:var(--bad)}.hero-warn{margin-top:8px;color:var(--warn)}.hero-stage{position:relative;display:flex;min-height:560px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.hero-hint{position:absolute;left:50%;bottom:16px;transform:translate(-50%);background:#151c25e6;color:#fff;padding:8px 14px;border-radius:6px;white-space:nowrap;pointer-events:none}.home-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:8px 28px 28px}.home-steps>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.home-steps p{margin:6px 0 0;line-height:1.5}.home-foot{padding:0 28px 28px;white-space:nowrap}.home-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#151c2573;display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.home-card{background:var(--surface);border-radius:10px;padding:22px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 40px #00000040}.home-card h2{margin:0}.home-card p{margin:0;line-height:1.5}@media (max-width: 1000px){.hero{grid-template-columns:1fr;padding:16px}.hero-stage{min-height:420px}.home-steps{grid-template-columns:1fr;padding:8px 16px 16px}.home-top{padding:12px 16px}}.hero-bars{display:flex;flex-direction:column;gap:8px;margin-top:14px}.hb-label{display:flex;gap:8px;align-items:baseline;white-space:nowrap;overflow:hidden;font-size:13px}.hb-label span{flex:1;overflow:hidden;text-overflow:ellipsis;font-size:12px}.hb-track{height:10px;border-radius:5px;background:var(--line-2);overflow:hidden;margin-top:4px}.hb-track i{display:block;height:100%;background:var(--steel);border-radius:5px;transition:width .4s}.hero-bar:first-child .hb-track i{background:var(--accent)}.hb-track.hot i{background:var(--bad)}
