:root{--ink:#252936;--muted:#858894;--line:#e9e9ef;--violet:#694cce;--violet-light:#f2edfc;--green:#23806a;--red:#bf414c;--amber:#a77523;--bg:#f7f8fa}*{box-sizing:border-box}body{margin:0;font:13px/1.45 'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #dedfe7;background:white;color:var(--ink);border-radius:7px;padding:8px 13px;white-space:nowrap;transition:background .15s}button:hover{background:#f4f2fa}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}input,select{border:1px solid #dedfe7;border-radius:6px;padding:8px 10px;outline:none;background:#fff;color:var(--ink)}input:focus,select:focus,button:focus-visible{outline:2px solid #b3a1ee;outline-offset:2px}input[type=checkbox]{accent-color:var(--violet);width:15px;height:15px;vertical-align:middle}input[type=number]{font-variant-numeric:tabular-nums}h1{font-size:27px;letter-spacing:-.6px;font-weight:650;margin:0 0 5px}h2{font-size:19px;margin:0}h3{font-size:14px;font-weight:600}.muted,.hint{color:var(--muted)}.hint{font-size:12px}.primary{background:var(--violet);border-color:var(--violet);color:white}.primary:hover{background:#5c3fbf}.text-button{background:transparent;border:0;color:var(--violet);padding:5px 0}.app{display:flex;min-height:100vh}.sidebar{width:222px;flex-shrink:0;background:white;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:27px 17px 16px}.brand{display:flex;gap:10px;align-items:center;font-size:15px;letter-spacing:1px;font-weight:750;margin:0 6px 31px}.brandmark{display:grid;place-items:center;flex-shrink:0;width:35px;height:35px;border-radius:9px;color:white;background:var(--violet);font-size:24px;letter-spacing:-2px}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.1px;color:var(--muted);margin-top:3px}.workspace{font-size:9px;letter-spacing:1.15px;font-weight:600;color:#a0a2ad;margin:0 12px 10px}nav{display:grid;gap:4px}nav button{border:0;text-align:left;color:#6b6e7c;padding:11px 12px;display:flex;align-items:center;gap:9px;border-radius:7px}nav button span{font-size:17px;width:19px;color:#8e90a1}nav button.active{background:var(--violet-light);color:var(--violet);font-weight:600}nav button b{margin-left:auto;font-size:10px;background:#e8e0fb;border-radius:4px;padding:1px 6px;font-weight:600}nav button.active span{color:var(--violet)}.side-divider{height:1px;background:var(--line);margin:24px 12px 19px}#groups{overflow:auto;max-height:36vh}#groups button{display:flex;justify-content:space-between;border:0;background:none;width:100%;font-size:12px;padding:7px 12px;color:#787b89}#groups button:hover,#groups button.active{color:var(--violet);background:#faf8ff}#groups button span{color:#a6a8b2;font-size:10px}.side-bottom{margin-top:auto;padding:17px 9px 0;font-size:11px;border-top:1px solid var(--line)}.side-bottom small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.side-bottom button{font-size:10px;margin-top:10px}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--green);margin-right:5px}.main{min-width:0;flex:1}.topbar{height:66px;border-bottom:1px solid var(--line);background:white;display:flex;align-items:center;justify-content:space-between;padding:0 30px;font-size:12px}.topbar b{font-size:14px}.slash{color:#c2c3cb;padding:0 16px}.top-right{display:flex;align-items:center;gap:20px;font-size:10px;color:var(--muted)}.avatar{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#efedf5;color:#81719f;font-weight:600}main{padding:27px 30px 12px;max-width:1760px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.heading p{margin:0;color:#9395a0;font-size:12px}.heading .actions{display:flex;gap:8px}.tag{font-size:10px;font-weight:500;padding:4px 8px;border-radius:5px;background:#eeebf8;color:#8a71bd;vertical-align:middle;margin-left:11px;letter-spacing:0}.stats{display:flex;gap:0;background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:18px}.stat{padding:15px 22px;flex:1;min-width:0}.stat+.stat{border-left:1px solid var(--line)}.stat small{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.stat strong{font-size:23px;letter-spacing:-.5px;font-weight:650}.stat .note{font-size:10px;color:#989aa5;margin-left:8px}.notice{display:flex;align-items:center;gap:10px;font-size:11px;background:#fffaf0;border:1px solid #f0e5cb;border-radius:7px;padding:10px 13px;margin-bottom:18px;color:#8b733b}.notice .icon{display:grid;place-items:center;border:1px solid #d5b978;border-radius:50%;width:16px;height:16px;flex-shrink:0;font-weight:700}.notice button{margin-left:auto;border:0;background:none;color:#967434;font-size:11px;padding:0}.panel{border:1px solid var(--line);border-radius:9px;background:white;overflow:hidden}.toolbar{display:flex;align-items:center;padding:14px 16px;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.search{position:relative;flex:1;min-width:180px;max-width:365px}.search input{padding-left:32px;width:100%;font-size:11px}.search:before{content:'⌕';position:absolute;left:11px;top:3px;font-size:22px;color:#999bac}.toolbar select{font-size:11px;max-width:230px}.toolbar .spacer{flex:1}.toolbar label{color:var(--muted);font-size:10px;display:flex;align-items:center;gap:6px}.toolbar input.small{width:60px;padding:7px 8px;text-align:right}.table-wrap{overflow:auto;max-height:calc(100vh - 392px);min-height:220px}table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}th{text-align:left;font-weight:500;color:#8a8d99;font-size:10px;background:#fbfbfd;padding:11px 13px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}td{padding:11px 13px;border-bottom:1px solid #efeff4;vertical-align:middle}tbody tr:hover{background:#faf9fe}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.product-name{font-size:12px;font-weight:600;cursor:pointer;display:block;color:#424656}.product-meta{font-size:9px;color:#a1a3ae;margin-top:3px}.variant{display:inline-block;font-size:9px;background:#f3f4f7;padding:3px 7px;border-radius:4px;color:#858895;max-width:170px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.sale-input{border:1px solid transparent;background:transparent;width:86px;padding:5px 5px;text-align:right;font-size:12px;font-weight:600;border-radius:4px}.sale-input:hover{border-color:#e3def2;background:white}.price{font-size:12px;font-weight:600}.original{font-size:11px;color:#a0a2ac}.status{font-size:9px;padding:4px 7px;border-radius:4px;background:#f1f2f5;color:#858895;display:inline-block}.status.loss,.status.error{background:#fbebed;color:var(--red)}.status.low{background:#fff4df;color:var(--amber)}.status.ok{background:#e8f5f0;color:var(--green)}.add-button{width:25px;height:25px;padding:0;border-color:#e9e6f2;color:#9484bc;font-size:16px}.pager{padding:11px 16px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#9396a2}.pager div{display:flex;align-items:center;gap:10px}.pager button{font-size:10px;padding:4px 8px}footer{font-size:10px;color:#a3a5b0;padding:13px 30px;display:flex;gap:9px}.field-price{width:110px;text-align:right;padding:5px 8px;font-size:11px}.good-text{color:var(--green)}.bad-text{color:var(--red)}dialog{border:1px solid #e1dfeb;border-radius:12px;box-shadow:0 20px 80px #24213630;padding:24px;max-width:580px;width:calc(100vw - 32px);color:var(--ink)}dialog::backdrop{background:#24223330;backdrop-filter:blur(2px)}#detail{margin:0 0 0 auto;position:fixed;top:0;bottom:0;height:100%;max-height:100%;border-radius:12px 0 0 12px;max-width:465px;overflow:auto}.dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:18px}.dialog-head button{border:0;padding:0;font-size:24px;color:#9393a5;background:none;line-height:1}.dialog-head p{margin:4px 0}.detail-title{font-size:20px;line-height:1.25}.detail-values{display:flex;background:#f8f7fc;border-radius:8px;padding:15px;margin:18px 0;gap:20px}.detail-values div{flex:1}.detail-values small{font-size:10px;display:block;color:var(--muted)}.detail-values strong{font-size:20px}.detail-grid{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:9px;margin:17px 0;font-size:12px}.detail-grid input{text-align:right;width:130px}.detail-grid select{width:130px}.check-label{display:flex;gap:9px;font-size:11px;margin:14px 0;line-height:1.5}.check-label input{flex-shrink:0;margin-top:3px}.rule{font-size:11px;border-left:3px solid #d7cfec;padding-left:11px;line-height:1.65;color:#80838f;margin:20px 0}.full{width:100%}.export-options{display:grid;gap:8px;margin:20px 0}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);color:white;background:#34313e;padding:12px 18px;border-radius:8px;font-size:12px;z-index:99;display:none;max-width:90vw}.empty{text-align:center;padding:60px 20px;color:#8c8e9b}.empty h2{color:#595768;margin-bottom:10px}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.method-card{padding:22px}.method-card h3{margin:0 0 12px}.method-card p{color:#8b8d99;font-size:12px;line-height:1.65}.method-card ol{padding-left:20px;color:#767b88;font-size:12px;line-height:2}.equation{background:#f8f6fc;border-radius:6px;padding:14px;color:#765eaf;font-size:13px;margin:15px 0;white-space:normal}.method-card input{width:80px;text-align:right;margin-left:12px}.spec-head{display:flex;gap:10px;flex-wrap:wrap;padding:16px;border-bottom:1px solid var(--line)}.spec-head input{min-width:150px;flex:1}.spec-total{display:flex;justify-content:flex-end;gap:25px;padding:20px;font-size:12px}.spec-total strong{font-size:22px}.versions-list{display:grid;gap:12px}.version{display:flex;align-items:center;gap:16px;padding:20px}.version .v-icon{background:var(--violet-light);padding:10px;border-radius:8px;color:var(--violet)}.version small{display:block;color:var(--muted);margin-top:4px}.version .actions{margin-left:auto;display:flex;gap:7px}.version h3{margin:0}.dependency{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:11px;border-bottom:1px solid #eee;padding:8px 0}.dependency label{flex:1}.dependency input{width:90px;padding:5px;text-align:right}.dependency small{display:block;font-size:9px;color:var(--muted)}details summary{cursor:pointer;color:#81768f;font-size:11px;margin:15px 0}.source-note{font-size:10px;color:#9092a0}.source-formula{font-family:Consolas,monospace;overflow-wrap:anywhere;white-space:normal;font-size:10px;background:#fafafa;padding:10px}.storage-warning{background:#fff0f1;color:#a24c56;font-size:11px;padding:8px}.unit-warning{color:var(--amber);font-size:9px}.print-only{display:none}@media(min-width:1450px){main{padding:32px 40px 12px}.table-wrap{max-height:calc(100vh - 400px)}td{padding-top:13px;padding-bottom:13px}}@media(max-width:1100px){.sidebar{width:190px;padding:23px 10px}.brand{font-size:13px}.topbar{padding:0 20px}main{padding:23px 20px 10px}.top-right{gap:10px}.stat{padding:12px 16px}.stat .note{display:block;margin:0}.toolbar .spacer{display:none}.table-wrap{max-height:calc(100vh - 420px)}.hide-medium{display:none}}@media(max-width:760px){.app{display:block}.sidebar{width:100%;height:auto;position:relative;padding:13px 16px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 0 12px}.brand small{display:none}.brandmark{width:27px;height:27px;font-size:20px}nav{display:flex;overflow:auto;gap:4px}nav button{padding:8px;font-size:11px;flex-shrink:0}nav button span,nav button b,.workspace,.side-divider,#groups,.side-bottom{display:none}.topbar{height:44px;padding:0 16px}.top-right{font-size:9px}.avatar{display:none}.slash{padding:0 8px}main{padding:20px 15px 5px}.heading{align-items:start;gap:10px;margin-bottom:16px}.heading .actions{flex-direction:column;gap:5px}.heading button{font-size:10px;padding:7px 9px}.heading p{font-size:10px;max-width:210px}h1{font-size:22px}.tag{display:block;margin:6px 0 0;width:max-content;font-size:9px}.stats{margin-bottom:12px}.stat{padding:11px 9px}.stat small{font-size:9px}.stat strong{font-size:20px}.stat .note{font-size:8px}.notice{font-size:10px;padding:9px}.notice button{display:none}.toolbar{padding:11px;gap:7px}.toolbar select{max-width:100%;font-size:10px}.search{max-width:none;flex-basis:100%}.toolbar label{font-size:9px}.toolbar input.small{width:50px;font-size:10px}.table-wrap{max-height:65vh}table{min-width:800px}td,th{padding:10px}.pager{padding:10px;gap:7px;flex-wrap:wrap}footer{font-size:8px;padding:12px 16px;flex-wrap:wrap}.method-grid{grid-template-columns:1fr}.version{padding:14px;flex-wrap:wrap}.version .actions{margin-left:0}.topbar #save-status{max-width:150px}.detail-values{gap:10px}.detail-values strong{font-size:18px}}@media print{body{background:white}.sidebar,.topbar,.heading .actions,.toolbar,.notice,.pager,footer,dialog,#toast,.no-print{display:none!important}.app{display:block}.main{width:100%}main{padding:0;max-width:none}.panel{border:0}.table-wrap{overflow:visible;max-height:none}.stats{display:none}.heading{margin-bottom:20px}h1{font-size:22px}table{font-size:10px;min-width:0}th{position:static;background:#eee!important;-webkit-print-color-adjust:exact}thead{display:table-header-group}tr{break-inside:avoid}td,th{padding:7px}.sale-input{border:0;padding:0;width:60px}.hide-print{display:none!important}.print-only{display:block}.product-name{font-size:10px}.product-meta{font-size:8px}@page{size:A4 landscape;margin:12mm}}
