:root{--bg:#f6f8fa;--paper:#fff;--ink:#263c37;--text:#43564f;--muted:#8a9692;--green:#159c76;--green-dark:#087e5c;--green-light:#e8f6ef;--line:#edf0ee;--orange:#d99435;--orange-light:#fff5e6;--red:#d96565;--radius:16px;--shadow:0 3px 15px #263c3703}
*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;font-size:calc(14px * var(--font-scale,1));line-height:1.6;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a4dfc7;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3,strong{color:var(--ink)}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.sidebar{width:238px;position:fixed;inset:0 auto 0 0;background:white;border-right:1px solid var(--line);padding:31px 21px 0;z-index:30;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 10px;font-size:calc(24px * var(--font-scale,1));font-weight:750;letter-spacing:2px}.brand-mark{width:39px;height:39px;background:var(--green);border-radius:12px;display:grid;place-items:center;color:white;box-shadow:0 5px 12px #159c761f}.brand-mark svg{width:29px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.brand-en{display:block;color:var(--muted);font-size:calc(9px * var(--font-scale,1));letter-spacing:3px;line-height:1.1;margin-top:1px;font-weight:500}.workspace{display:flex;gap:10px;align-items:center;background:#f7f9f8;border:1px solid var(--line);border-radius:11px;padding:12px;margin-top:31px;font-size:calc(12px * var(--font-scale,1));color:var(--ink);font-weight:600}.workspace small{display:block;color:var(--muted);font-size:calc(10px * var(--font-scale,1));font-weight:400;margin-top:2px}.workspace-icon{background:#e9eee9;border-radius:9px;height:32px;width:32px;display:grid;place-items:center;font-size:calc(15px * var(--font-scale,1));color:#62756a}.workspace-dot,.user-status{width:6px;height:6px;border-radius:100%;background:var(--green);margin-left:auto}.nav-label{font-size:calc(10px * var(--font-scale,1));color:#a1aaa6;padding:26px 13px 12px;letter-spacing:1px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav a{height:46px;display:flex;align-items:center;gap:12px;padding:0 14px;border-radius:9px;color:#798680;font-size:calc(13px * var(--font-scale,1));transition:background .16s,color .16s}.sidebar nav a:hover{background:#f5f8f6;color:var(--ink)}.sidebar nav a.active{color:var(--green-dark);background:var(--green-light);font-weight:650}.nav-count{margin-left:auto;background:#f0f3f1;color:#8c9993;min-width:21px;height:20px;font-size:calc(10px * var(--font-scale,1));border-radius:5px;display:grid;place-items:center}.active .nav-count{background:#d5eddf;color:var(--green-dark)}.nav-active-dot{display:none;width:5px;height:5px;border-radius:50%;background:var(--green);margin-left:auto}.active .nav-active-dot{display:block}.sidebar-tip{background:linear-gradient(135deg,#f3f8f4,#eff6f3);border:1px solid #e7efe9;border-radius:12px;padding:17px 14px;margin-top:46px;font-size:calc(11px * var(--font-scale,1))}.tip-icon{font-size:calc(23px * var(--font-scale,1));color:var(--green);display:block;line-height:1;margin-bottom:12px}.sidebar-tip strong{font-size:calc(11px * var(--font-scale,1));font-weight:600}.sidebar-tip p{font-size:calc(10px * var(--font-scale,1));color:#8a9a90;margin-top:6px;line-height:1.9}.sidebar-tip a{display:flex;align-items:center;gap:10px;color:var(--green);margin-top:14px;font-size:calc(10px * var(--font-scale,1));font-weight:600}.sidebar-tip .icon{width:14px;height:14px}.sidebar-bottom{margin-top:auto;padding-top:24px}.help-button{display:flex;align-items:center;gap:11px;background:none;font-size:calc(12px * var(--font-scale,1));color:#8b9791;padding:0 13px 21px}.help-button .icon{width:17px}.user{border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:19px 4px;font-size:calc(11px * var(--font-scale,1));color:var(--ink)}.user small{display:block;font-size:calc(9px * var(--font-scale,1));color:var(--muted);margin-top:3px}.avatar,.top-avatar{background:#e8f0e9;color:#5a7864;display:grid;place-items:center;border-radius:50%;font-size:calc(13px * var(--font-scale,1));width:34px;height:34px}.user-status{width:5px;height:5px}.main-shell{margin-left:238px;min-height:100vh}.topbar{height:78px;background:#ffffffb3;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:16px}.breadcrumb{display:flex;align-items:center;gap:15px;font-size:calc(11px * var(--font-scale,1));color:#9ba59f;white-space:nowrap}.breadcrumb strong{font-size:calc(11px * var(--font-scale,1));font-weight:500}.breadcrumb .icon{height:11px;width:11px;color:#bbc3be}.topbar-right{display:flex;align-items:center;gap:22px}.global-search{height:34px;display:flex;align-items:center;background:#f6f8f7;border:1px solid var(--line);gap:9px;color:#9aa59e;border-radius:7px;padding:0 12px;font-size:calc(10px * var(--font-scale,1));width:227px}.global-search .icon{width:14px;height:14px}kbd{font:10px inherit;color:#a6b0a9;border:1px solid #e0e5e1;border-radius:4px;padding:0 5px;margin-left:auto;background:#fff}.connection{font-size:calc(10px * var(--font-scale,1));display:flex;align-items:center;gap:6px;white-space:nowrap;color:#89988e}.connection i{width:5px;height:5px;border-radius:50%;background:var(--green)}.connection.offline i{background:var(--red)}.top-avatar{width:30px;height:30px;font-size:calc(11px * var(--font-scale,1))}main{max-width:1550px;margin:auto;padding:32px 38px 20px;min-height:calc(100vh - 128px)}.page-footer{display:flex;justify-content:space-between;gap:20px;font-size:calc(9px * var(--font-scale,1));color:#a7b0ac;padding:20px 38px;max-width:1550px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:26px}.heading-eyebrow{color:#809089;font-size:calc(10px * var(--font-scale,1));letter-spacing:1.7px;margin-bottom:4px;display:block}.page-heading h1{font-size:calc(26px * var(--font-scale,1));letter-spacing:.8px;line-height:1.5;font-weight:650}.page-heading p{margin-top:5px;color:var(--muted);font-size:calc(11px * var(--font-scale,1))}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:8px;font-size:calc(11px * var(--font-scale,1));line-height:1.6;background:white;border:1px solid #e6eae7;color:#617069;font-weight:500;white-space:nowrap;transition:background .16s,transform .16s}.button:hover{background:#f7faf8;border-color:#cfdcd4}.button.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 4px 9px #159c7614}.button.primary:hover{background:var(--green-dark)}.button.danger{background:#fff1f0;color:#cb5555;border-color:#f7dede}.button .icon{width:15px;height:15px}.button.small{padding:7px 11px;font-size:calc(10px * var(--font-scale,1))}.button.text{border:0;background:none;color:var(--green);padding:4px 0;font-size:calc(10px * var(--font-scale,1));box-shadow:none}.button.text:hover{color:var(--green-dark)}.hero{background:#e9f4ed;border:1px solid #e0eee4;border-radius:var(--radius);padding:27px 30px;margin-bottom:24px;position:relative;overflow:hidden;min-height:163px;display:flex;align-items:center;justify-content:space-between;gap:20px}.hero-content{z-index:1}.hero-label{font-size:calc(9px * var(--font-scale,1));letter-spacing:1.5px;color:#65997e;display:flex;align-items:center;gap:7px;margin-bottom:10px}.hero-label span{height:4px;width:4px;border-radius:50%;background:#78b691}.hero h2{font-size:calc(23px * var(--font-scale,1));font-weight:600;letter-spacing:.5px;color:#345b47}.hero p{font-size:calc(11px * var(--font-scale,1));color:#7c9c87;margin-top:9px}.hero-chips{display:flex;gap:16px;margin-top:15px;font-size:calc(9px * var(--font-scale,1));color:#61826c}.hero-chips span{display:flex;gap:5px;align-items:center}.hero-chips .icon{width:12px;height:12px}.hero-art{width:250px;max-width:30%;height:132px;opacity:.87;flex-shrink:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:28px}.stat{background:white;border:1px solid var(--line);border-radius:13px;padding:20px;box-shadow:var(--shadow)}.stat-top{display:flex;align-items:center;justify-content:space-between;font-size:calc(11px * var(--font-scale,1));color:#8c9892}.stat-icon{height:31px;width:31px;border-radius:9px;display:grid;place-items:center;background:#ebf7f1;color:#5cae88}.stat-icon .icon{width:16px;height:16px}.stat-icon.purple{background:#f1edfb;color:#9883c7}.stat-icon.blue{background:#edf3fc;color:#769ccd}.stat-icon.orange{background:#fff5e7;color:#d8ac64}.stat-value{font-size:calc(31px * var(--font-scale,1));color:var(--ink);font-weight:600;letter-spacing:-1px;margin-top:6px;line-height:1.3}.stat-value small{font-weight:400;font-size:calc(10px * var(--font-scale,1));color:#9ca8a1;margin-left:8px;letter-spacing:0}.stat-bottom{font-size:calc(9px * var(--font-scale,1));color:#97a49c;margin-top:10px;display:flex;gap:5px;align-items:center}.stat-bottom .icon{width:11px;height:11px}.stat-bottom .green{color:var(--green)}.stat-bottom .orange-text{color:var(--orange)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px;align-items:start}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.section-title h2{font-size:calc(15px * var(--font-scale,1));font-weight:600;display:flex;align-items:center;gap:8px}.section-title p{font-size:calc(10px * var(--font-scale,1));color:#98a59d;margin-top:3px}.section-title .count{font-size:calc(9px * var(--font-scale,1));min-width:20px;height:19px;border-radius:5px;background:#edf0ee;color:#89968f;display:grid;place-items:center;font-weight:400}.section-title .icon{width:13px;height:13px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.product-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.product-card{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;min-width:0}.product-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #253a3510}.product-art-wrap{height:145px;position:relative;padding:12px;display:flex;justify-content:center;align-items:center;cursor:pointer;overflow:hidden}.product-art-wrap.mint,.swatch.mint{background:#eaf3ed}.product-art-wrap.purple,.swatch.purple{background:#efedf7}.product-art-wrap.peach,.swatch.peach{background:#f8eee6}.product-art-wrap.blue,.swatch.blue{background:#eaf1f7}.product-art-wrap.yellow,.swatch.yellow{background:#f8f4e7}.product-art-wrap.pink,.swatch.pink{background:#f6edef}.product-art{height:130px;width:160px;transition:transform .2s}.product-card:hover .product-art{transform:rotate(-3deg) scale(1.05)}.product-sku{position:absolute;left:13px;top:12px;font-size:calc(8px * var(--font-scale,1));letter-spacing:.5px;color:#718379;background:#ffffff96;padding:2px 7px;border-radius:4px}.art-dots{position:absolute;width:46px;height:46px;right:16px;bottom:16px;opacity:.16;background-image:radial-gradient(#526956 1px,transparent 1px);background-size:6px 6px}.product-card-body{padding:16px 17px}.product-card h3{font-size:calc(13px * var(--font-scale,1));font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-category{font-size:calc(9px * var(--font-scale,1));color:#9aa59f;margin-top:4px}.product-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:16px;font-size:calc(9px * var(--font-scale,1));color:#95a097}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:5px;font-size:calc(9px * var(--font-scale,1));font-weight:500;background:var(--green-light);color:#46886a;white-space:nowrap}.badge .icon{height:10px;width:10px}.badge.warning{background:var(--orange-light);color:#c79445}.badge.neutral{background:#f0f3f1;color:#809088}.product-card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f0f3f1;padding-top:11px;margin-top:11px;font-size:calc(9px * var(--font-scale,1));color:#8f9e95}.product-card-footer strong{font-weight:500;font-size:calc(11px * var(--font-scale,1));margin:0 3px}.product-card-footer .button{font-size:calc(9px * var(--font-scale,1))}.product-card-footer .icon{height:12px;width:12px}.compact .product-art-wrap{height:121px}.compact .product-art{height:113px}.compact .product-card-body{padding:13px 15px}.compact .product-meta{margin-top:11px}.compact .product-card-footer{margin-top:10px;padding-top:9px}.panel{background:white;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);overflow:hidden}.panel-padding{padding:21px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:10px}.panel-heading h2{font-size:calc(13px * var(--font-scale,1));font-weight:600;display:flex;align-items:center;gap:8px}.panel-heading h2>.icon{width:15px;height:15px;color:var(--orange)}.panel-caption{color:#9aa59f;font-size:calc(9px * var(--font-scale,1));margin-top:5px}.low-item{padding:14px 0;border-bottom:1px solid #f0f3f1}.low-item:first-of-type{padding-top:2px}.low-item:last-of-type{border-bottom:0}.low-item-top{display:flex;justify-content:space-between;align-items:center;gap:5px}.low-item strong{font-size:calc(11px * var(--font-scale,1));font-weight:500}.low-item small{font-size:calc(9px * var(--font-scale,1));color:#abb4ae}.low-item-bottom{display:flex;justify-content:space-between;font-size:calc(9px * var(--font-scale,1));color:#a1aba5;margin-top:8px}.low-item-bottom .stock-low{color:#c39150;font-weight:500}.progress{height:4px;background:#f6f3eb;margin-top:9px;border-radius:2px;overflow:hidden}.progress span{display:block;height:100%;background:#eac68c;border-radius:2px}.alert-note{display:flex;gap:8px;margin-top:15px;padding:11px 12px;border-radius:7px;background:#fffbf3;color:#b79d74;font-size:calc(9px * var(--font-scale,1));line-height:1.8}.alert-note .icon{width:13px;height:13px;margin-top:2px}.quick-panel{margin-top:18px}.quick-links{display:flex;flex-direction:column;gap:9px}.quick-link{display:flex;align-items:center;gap:10px;padding:10px;background:#f8faf9;border-radius:8px;text-align:left;color:var(--ink);font-size:calc(10px * var(--font-scale,1));border:1px solid #f0f3f1}.quick-link>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;background:#edf4ef;color:#6f9e83}.quick-link>span .icon{height:14px;width:14px}.quick-link>.icon{margin-left:auto;width:13px;height:13px;color:#a6b3aa}.quick-link:hover{background:#edf7f1}.activity-panel{margin-top:24px}.activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.activity-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #f2f4f3;min-width:0}.activity-item:nth-last-child(-n+2){border:0}.activity-icon{width:32px;height:32px;background:#f2f6f3;color:#81a38e;border-radius:9px;display:grid;place-items:center;flex-shrink:0}.activity-icon .icon{width:15px;height:15px}.activity-info{min-width:0}.activity-info strong{font-size:calc(10px * var(--font-scale,1));font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-info small{font-size:calc(9px * var(--font-scale,1));color:#a3aea6;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-time{font-size:calc(9px * var(--font-scale,1));color:#adb6b0;margin-left:auto;white-space:nowrap}.toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:21px;flex-wrap:wrap}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tab{background:none;border:1px solid transparent;color:#89968e;padding:7px 13px;border-radius:7px;font-size:calc(11px * var(--font-scale,1));display:flex;align-items:center;gap:7px}.tab span{font-size:calc(9px * var(--font-scale,1));color:#a1aaa5}.tab.active{color:var(--green-dark);background:#e6f2eb;border-color:#d8eade;font-weight:500}.tab:hover{background:#edf4ef}.search-input{position:relative;width:230px;max-width:100%}.search-input>.icon{position:absolute;left:12px;top:12px;color:#a3ada7;width:15px;height:15px}.search-input input{width:100%;height:39px;border:1px solid #e5eae6;border-radius:8px;background:white;padding:0 12px 0 36px;font-size:calc(11px * var(--font-scale,1));color:var(--ink)}input::placeholder,textarea::placeholder{color:#abb5ae}.materials-stats{display:flex;gap:12px;font-size:calc(10px * var(--font-scale,1));margin-bottom:22px}.materials-stat{padding:9px 14px;background:white;border:1px solid var(--line);border-radius:8px;color:#8e9b92}.materials-stat strong{margin-left:8px;font-size:calc(12px * var(--font-scale,1));color:var(--ink)}.materials-stat.warn{background:#fff9ee;border-color:#f6ead3}.materials-stat.warn strong{color:#cb9e58}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left;font-size:calc(11px * var(--font-scale,1))}th{background:#fafcfb;color:#8f9b93;font-size:calc(10px * var(--font-scale,1));font-weight:500;padding:14px 20px;border-bottom:1px solid var(--line)}td{padding:18px 20px;border-bottom:1px solid #f0f3f1;color:#7b8c81}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdfc}.material-cell{display:flex;align-items:center;gap:11px}.material-cell>span{width:33px;height:33px;background:#eff5f0;color:#7fa48a;display:grid;place-items:center;border-radius:9px;flex-shrink:0}.material-cell>span.packaging{background:#f7f0e7;color:#b79c78}.material-cell>span.container{background:#f0edf8;color:#a296bb}.material-cell .icon{width:16px;height:16px}.material-cell strong{display:block;font-size:calc(11px * var(--font-scale,1));color:var(--ink);font-weight:500}.material-cell small{display:block;font-size:calc(8px * var(--font-scale,1));color:#afb8b1;margin-top:2px}.stock-number{font-size:calc(13px * var(--font-scale,1));font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.stock-number.low{color:#d0a261}.stock-unit{font-size:calc(9px * var(--font-scale,1));color:#a0aba3;margin-left:5px}.material-source{max-width:160px;overflow:hidden;text-overflow:ellipsis}.icon-button{height:29px;width:29px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:none;color:#8d9d92}.icon-button .icon{width:14px;height:14px}.icon-button:hover{color:var(--green);background:#edf6ef}.icon-button.delete:hover{color:var(--red);background:#fff1f0}.row-actions{display:flex;align-items:center;gap:4px}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-top:1px solid var(--line);font-size:calc(10px * var(--font-scale,1));color:#9aa69e}.link{color:var(--green);display:flex;align-items:center;gap:4px;font-size:calc(10px * var(--font-scale,1))}.link .icon{height:12px;width:12px}.empty{padding:46px 20px;text-align:center;color:#9aa59f;background:white;border:1px dashed #dce6df;border-radius:13px;grid-column:1/-1}.empty-icon{width:58px;height:58px;margin:0 auto 15px;border-radius:17px;background:#eff6f1;display:grid;place-items:center;color:#8db59b}.empty-icon .icon{height:25px;width:25px}.empty h3{font-size:calc(15px * var(--font-scale,1));font-weight:500}.empty p{font-size:calc(11px * var(--font-scale,1));margin:8px 0 20px}.empty-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.empty-inline{font-size:calc(10px * var(--font-scale,1));color:#9caaa0;padding:20px 0;text-align:center}.planner-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:23px;align-items:start}.form-label{display:block;color:#61746a;font-size:calc(11px * var(--font-scale,1));margin-bottom:7px}.field{margin-bottom:18px}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid #e1e7e2;border-radius:7px;font-size:calc(12px * var(--font-scale,1));background:#fff;color:var(--ink);height:41px}.field textarea{height:85px;resize:vertical}.field small{font-size:calc(9px * var(--font-scale,1));color:#a2aea6;display:block;margin-top:6px}.field .required{color:#d69b7d}.planner-info{border-top:1px solid var(--line);padding-top:17px;margin-top:20px;font-size:calc(10px * var(--font-scale,1));color:#91a298;line-height:1.9}.planner-info .icon{height:14px;width:14px;color:#6f9a7d;vertical-align:middle;margin-right:5px}.planner-result .result-header{padding:25px;display:flex;align-items:center;gap:17px;border-bottom:1px solid var(--line)}.result-symbol{width:52px;height:52px;background:#eaf5ed;border-radius:14px;display:grid;place-items:center;color:var(--green)}.result-symbol.warning{background:#fff5e7;color:#d8a358}.result-symbol .icon{width:25px;height:25px}.result-header h2{font-size:calc(17px * var(--font-scale,1));font-weight:550}.result-header p{font-size:calc(10px * var(--font-scale,1));color:#97a59c;margin-top:5px}.result-header .badge{margin-left:auto}.plan-product{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 25px;background:#fcfdfc;font-size:calc(11px * var(--font-scale,1))}.plan-product span{color:#8d9c92}.plan-product strong{font-size:calc(12px * var(--font-scale,1));font-weight:500}.plan-footer{padding:20px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line)}.plan-footer p{font-size:calc(10px * var(--font-scale,1));color:#95a39a}.plan-footer strong{color:var(--green);font-weight:500}.planner-empty{padding:85px 20px;min-height:405px}.plan-loading{opacity:.55;pointer-events:none}.production-note{padding:13px 25px;background:#f8faf9;font-size:calc(10px * var(--font-scale,1));color:#87988b;border-top:1px solid var(--line)}.production-note .icon{width:13px;height:13px;vertical-align:middle;margin-right:4px}.history-positive{color:var(--green);font-weight:600}.history-negative{color:#cd9d65;font-weight:600}.initial-loading{display:flex;justify-content:center;align-items:center;gap:12px;color:#91a299;min-height:400px}.spinner{height:18px;width:18px;border:2px solid #dceae1;border-top-color:var(--green);border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:1px solid #e9efea;border-radius:17px;padding:0;width:650px;max-width:calc(100vw - 30px);max-height:calc(100vh - 44px);color:var(--text);box-shadow:0 20px 90px #203b352b}dialog::backdrop{background:#1c33285c;backdrop-filter:blur(4px)}.modal-header{padding:23px 26px;border-bottom:1px solid var(--line);display:flex;align-items:start;justify-content:space-between;gap:15px;background:#fff;position:sticky;top:0;z-index:2}.modal-header h2{font-size:calc(17px * var(--font-scale,1));font-weight:600}.modal-header p{font-size:calc(10px * var(--font-scale,1));color:#9aa69e;margin-top:4px}.modal-header .icon-button{background:#f5f7f5}.modal-body{padding:23px 26px}.modal-footer{display:flex;justify-content:flex-end;gap:9px;padding:16px 26px;border-top:1px solid var(--line);background:#fafcfb;position:sticky;bottom:0;z-index:2}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 17px}.field.full{grid-column:1/-1}.form-error{display:none;color:#c35b55;background:#fff1ef;border:1px solid #f7e2df;border-radius:7px;font-size:calc(11px * var(--font-scale,1));padding:10px 13px;margin-bottom:18px}.form-error.visible{display:block}.bom-heading{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px}.bom-heading strong{font-size:calc(12px * var(--font-scale,1));font-weight:500}.bom-heading small{font-size:calc(9px * var(--font-scale,1));color:#9eada1}.bom-row{display:grid;grid-template-columns:minmax(0,1fr) 96px 35px;align-items:center;gap:8px;margin-bottom:9px}.bom-row select,.bom-row input{width:100%;height:38px;padding:8px 10px;border:1px solid #e1e7e2;border-radius:7px;font-size:calc(11px * var(--font-scale,1));color:var(--ink);background:#fff}.bom-row .icon-button{color:#bba9a3}.bom-note{font-size:calc(9px * var(--font-scale,1));color:#98a79e;margin:8px 0 17px}.colors{display:flex;gap:9px}.color-option{position:relative}.color-option input{position:absolute;opacity:0;width:1px;height:1px}.swatch{display:block;width:29px;height:29px;border-radius:8px;cursor:pointer;border:2px solid transparent}.color-option input:checked+.swatch{border-color:var(--green);box-shadow:0 0 0 2px #fff inset}.color-option input:focus-visible+.swatch{outline:3px solid #a4dfc7;outline-offset:2px}.detail-hero{display:flex;align-items:center;gap:20px;margin-bottom:22px}.detail-hero .product-art-wrap{width:120px;height:110px;border-radius:12px;flex-shrink:0}.detail-hero .product-art{width:115px;height:100px}.detail-hero h3{font-size:calc(20px * var(--font-scale,1))}.detail-hero p{font-size:calc(11px * var(--font-scale,1));color:#95a399;margin-top:5px}.detail-bom{border:1px solid var(--line);border-radius:9px;overflow:hidden}.detail-bom td,.detail-bom th{padding:12px 16px}.detail-description{font-size:calc(11px * var(--font-scale,1));line-height:1.9;color:#889b8d;margin-bottom:19px;white-space:pre-line}.detail-capacity{display:flex;align-items:center;justify-content:space-between;padding:14px 0;font-size:calc(11px * var(--font-scale,1));color:#8e9e93}.detail-capacity strong{font-size:calc(17px * var(--font-scale,1));color:var(--green)}.confirm-message{font-size:calc(13px * var(--font-scale,1));line-height:1.9;margin-bottom:10px;white-space:pre-line}.confirm-hint{font-size:calc(11px * var(--font-scale,1));color:#a1aaa5}.search-modal-input{width:100%;height:45px;border:1px solid #dde6df;border-radius:9px;padding:10px 14px;font-size:calc(13px * var(--font-scale,1))}.search-results{margin-top:15px;max-height:400px;overflow:auto}.search-result{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 10px;background:white;border-bottom:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:calc(12px * var(--font-scale,1))}.search-result:hover{background:#f1f7f3}.search-result>.icon{color:var(--green)}.search-result small{display:block;font-size:calc(10px * var(--font-scale,1));color:#a3ada6;margin-top:2px}.search-result>span:last-child{margin-left:auto;font-size:calc(9px * var(--font-scale,1));color:#98a59c}.help-content{font-size:calc(12px * var(--font-scale,1));line-height:2;color:#84968a}.help-content h3{font-size:calc(13px * var(--font-scale,1));margin:16px 0 6px}.help-content h3:first-child{margin-top:0}.help-content code{background:#f0f5f1;padding:2px 5px;color:var(--green-dark);border-radius:4px}.toast-container{position:fixed;right:28px;bottom:28px;z-index:100;display:flex;flex-direction:column;gap:9px}.toast{display:flex;align-items:center;gap:9px;padding:13px 18px;background:#fff;border:1px solid #dbeadd;box-shadow:0 5px 24px #243d3215;border-radius:9px;font-size:calc(12px * var(--font-scale,1));color:#54816a;max-width:420px;animation:toast-in .2s ease}.toast .icon{color:var(--green);width:17px;height:17px}.toast.error{color:#b65f55;border-color:#f0dcd7}.toast.error .icon{color:#cb8774}@keyframes toast-in{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-menu{display:none}.sidebar-backdrop{display:none}.results-count{font-size:calc(10px * var(--font-scale,1));color:#a0aca4;margin-top:20px}.info-note{background:#f0f7f2;padding:12px 15px;border-radius:8px;font-size:calc(10px * var(--font-scale,1));color:#7e9a87;margin-bottom:18px}.welcome-empty{background:linear-gradient(135deg,#fff,#f5faf6);padding:45px 20px}.welcome-empty h3{font-size:calc(18px * var(--font-scale,1))}.welcome-empty p{max-width:430px;margin:10px auto 21px;line-height:1.9}.low-panel-footer{margin-top:13px;border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:center}.display-none{display:none!important}
@media(min-width:1500px){.product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.product-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid{grid-template-columns:minmax(0,1fr) 310px}.hero h2{font-size:calc(27px * var(--font-scale,1))}.hero{min-height:177px}.compact .product-art-wrap{height:140px}}
@media(max-width:1200px){.sidebar{width:212px;padding:26px 16px 0}.main-shell{margin-left:212px}.topbar{padding:0 26px}main{padding:26px}.page-footer{padding:18px 26px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 255px;gap:18px}.stats{gap:12px}.stat{padding:16px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:24px}.hero h2{font-size:calc(20px * var(--font-scale,1))}.global-search{width:180px}.sidebar-tip{margin-top:30px}.planner-layout{grid-template-columns:260px minmax(0,1fr)}th,td{padding:15px}}
@media(max-width:1020px){.dashboard-grid{grid-template-columns:1fr}.dashboard-right{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quick-panel{margin-top:0}.product-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.compact .product-art-wrap{height:110px}.compact .product-meta{flex-wrap:wrap}.hero-art{width:180px}.global-search{width:38px;padding:9px}.global-search span,.global-search kbd{display:none}.stats{gap:10px}.stat{padding:14px}.stat-top{font-size:calc(10px * var(--font-scale,1))}.stat-icon{height:26px;width:26px}.stat-value{font-size:calc(27px * var(--font-scale,1))}.stat-bottom{font-size:calc(8px * var(--font-scale,1))}.planner-layout{grid-template-columns:1fr}.planner-settings{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.planner-settings>.panel-heading,.planner-settings>.planner-info{grid-column:1/-1}.planner-settings .field{margin-bottom:0}.planner-info{margin-top:16px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:238px;transition:transform .2s}.sidebar.open{transform:translateX(0)}.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:#1c33284d;z-index:29}.main-shell{margin-left:0}.mobile-menu{display:inline-flex}.topbar{height:65px;padding:0 18px}.breadcrumb{gap:9px}.breadcrumb .mobile-menu .icon{height:18px;width:18px}.topbar-right{gap:14px}main{padding:24px 18px 14px}.page-footer{padding:18px;font-size:calc(8px * var(--font-scale,1))}.page-heading{align-items:start;margin-bottom:20px}.page-heading h1{font-size:calc(23px * var(--font-scale,1))}.page-heading p{font-size:calc(10px * var(--font-scale,1));max-width:245px}.page-heading .heading-actions .button{padding:8px 11px;font-size:calc(10px * var(--font-scale,1))}.heading-eyebrow{font-size:calc(8px * var(--font-scale,1))}.hero{padding:22px;min-height:147px;margin-bottom:18px}.hero h2{font-size:calc(18px * var(--font-scale,1))}.hero p{font-size:calc(10px * var(--font-scale,1));max-width:260px}.hero-art{position:absolute;right:-20px;bottom:-10px;opacity:.38;width:170px;max-width:38%}.hero-content{max-width:90%}.hero-chips{gap:11px;font-size:calc(8px * var(--font-scale,1))}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}.stat{padding:16px}.stat-top{font-size:calc(11px * var(--font-scale,1))}.stat-bottom{font-size:calc(9px * var(--font-scale,1))}.product-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.compact .product-art-wrap{height:120px}.dashboard-right{grid-template-columns:1fr 1fr}.activity-list{grid-template-columns:1fr}.activity-item:nth-last-child(-n+2){border-bottom:1px solid #f2f4f3}.activity-item:last-child{border:0}.connection{font-size:calc(9px * var(--font-scale,1))}.product-art-wrap{height:130px}.product-card-body{padding:14px}.product-card h3{font-size:calc(12px * var(--font-scale,1))}.toolbar{align-items:stretch}.search-input{width:100%}.tabs{gap:2px}.tab{padding:6px 9px;font-size:calc(10px * var(--font-scale,1))}.materials-stats{flex-wrap:wrap;gap:8px}.materials-stat{padding:7px 10px;font-size:calc(9px * var(--font-scale,1))}td,th{padding:13px}.panel-padding{padding:18px}.planner-result .result-header{padding:20px}.result-header h2{font-size:calc(15px * var(--font-scale,1))}.result-symbol{width:43px;height:43px}.plan-product,.plan-footer{padding:16px 20px}.plan-footer{align-items:start;flex-direction:column}.production-note{padding:12px 20px}.modal-header,.modal-body{padding:20px}.modal-footer{padding:14px 20px}.toast-container{right:15px;bottom:15px;left:15px}.toast{max-width:100%;font-size:calc(11px * var(--font-scale,1))}.detail-hero{gap:14px}.detail-hero h3{font-size:calc(17px * var(--font-scale,1))}.detail-hero .product-art-wrap{width:96px;height:98px}}
@media(max-width:440px){.dashboard-right{grid-template-columns:1fr}.hero h2{font-size:calc(17px * var(--font-scale,1))}.hero-chips{gap:8px;font-size:calc(7px * var(--font-scale,1))}.product-grid,.product-grid.compact{gap:11px}.product-meta{flex-wrap:wrap}.product-card-footer{flex-wrap:wrap;gap:5px;font-size:calc(8px * var(--font-scale,1))}.product-card-body{padding:12px}.heading-actions{gap:6px}.page-heading .heading-actions .button{padding:8px}.page-heading .heading-actions .button .icon{width:13px;height:13px}.connection{display:none}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.planner-settings{grid-template-columns:1fr;gap:15px}.planner-settings>.panel-heading,.planner-settings>.planner-info{grid-column:auto}.result-header .badge{display:none}.result-header p{font-size:calc(9px * var(--font-scale,1))}.bom-row{grid-template-columns:minmax(0,1fr) 75px 29px}.page-footer{font-size:calc(7px * var(--font-scale,1));gap:5px}}
.sidebar{overflow-y:auto}
.auth-pending .sidebar,.auth-pending .main-shell,.logged-out .sidebar,.logged-out .main-shell{display:none}
#login-screen{display:none;min-height:100vh;padding:30px;align-items:center;justify-content:center}
.auth-pending #login-screen,.logged-out #login-screen{display:flex}
.login-layout{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;width:100%;min-height:570px;border:1px solid #e3ece6;background:white;border-radius:24px;overflow:hidden;box-shadow:0 20px 80px #2e52460b}
.login-intro{background:linear-gradient(140deg,#e5f1e8,#f2f7eb);padding:45px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.login-intro .brand{padding:0;font-size:calc(24px * var(--font-scale,1));position:relative;z-index:1}
.login-intro .brand-mark>.icon{height:24px;width:24px}
.login-eyebrow{font-size:calc(9px * var(--font-scale,1));letter-spacing:2px;color:#78a288;margin-top:60px;z-index:1}
.login-intro h1{font-size:calc(38px * var(--font-scale,1));line-height:1.65;letter-spacing:2px;font-weight:600;margin-top:12px;color:#345c46;z-index:1}
.login-intro p{font-size:calc(12px * var(--font-scale,1));color:#7c9c85;line-height:2;margin-top:18px;z-index:1}
.login-decoration{display:flex;gap:14px;margin-top:35px;z-index:1}
.login-decoration span{width:55px;height:55px;display:grid;place-items:center;background:#ffffff91;border:1px solid #fff;border-radius:15px;color:#79a686;transform:rotate(-6deg)}
.login-decoration span:nth-child(2){transform:rotate(7deg);background:#d7e9d9}
.login-decoration .icon{width:27px;height:27px}
.login-intro small{font-size:calc(9px * var(--font-scale,1));color:#94ac98;margin-top:auto;padding-top:40px;z-index:1}
.login-intro:after{content:'';width:380px;height:380px;position:absolute;bottom:-210px;right:-200px;border:60px solid #d3e7d661;border-radius:50%}
.login-card{padding:62px 48px;display:flex;flex-direction:column;justify-content:center}
.login-symbol{height:42px;width:42px;background:var(--green-light);color:var(--green);border-radius:12px;display:grid;place-items:center;margin-bottom:21px}
.login-card h2{font-size:calc(23px * var(--font-scale,1));font-weight:600;letter-spacing:.5px}
.login-card>p{font-size:calc(11px * var(--font-scale,1));color:#9aaba0;margin:9px 0 30px}
.login-card .field{margin-bottom:20px}
.login-card .field input{height:44px;font-size:calc(12px * var(--font-scale,1))}
.login-submit{width:100%;height:43px;margin-top:6px;font-size:calc(12px * var(--font-scale,1));justify-content:space-between;padding:0 16px}
.login-note{display:flex;align-items:center;gap:7px;color:#a1afa5;font-size:calc(10px * var(--font-scale,1));margin-top:23px}
.login-note .icon{width:12px;height:12px}
.account-button{background:none;width:100%;font:inherit;text-align:left}
.account-button:hover{background:#f8fbf9}
#current-user-info{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(11px * var(--font-scale,1))}
#current-user-role{font-size:calc(9px * var(--font-scale,1))}
.account-summary{display:flex;align-items:center;gap:15px;margin-bottom:23px}
.account-avatar{height:54px;width:54px;border-radius:15px;background:#eaf5ed;color:#609c79;display:grid;place-items:center;font-size:calc(22px * var(--font-scale,1));flex-shrink:0}
.account-summary h3{font-size:calc(19px * var(--font-scale,1));font-weight:600}
.account-summary p{font-size:calc(11px * var(--font-scale,1));color:#95a89a;margin-top:4px}
.permission-chips{display:flex;gap:9px;flex-wrap:wrap}
.permission-chips>span{display:flex;align-items:center;gap:6px;padding:7px 10px;background:#f1f7f3;border-radius:7px;font-size:calc(10px * var(--font-scale,1));color:#769b84}
.permission-chips .icon{width:12px;height:12px}
.account-hint{font-size:calc(10px * var(--font-scale,1));color:#a3afa7;margin-top:24px}
.level-tag{background:#f2f4f3;color:#7f9687;padding:4px 9px;border-radius:5px;font-size:calc(10px * var(--font-scale,1));font-weight:600}
.root-label{font-size:calc(8px * var(--font-scale,1));color:#a4b0a7;margin-left:8px}
.info-note>.icon{width:13px;height:13px;vertical-align:middle;margin-right:5px}
.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.role-card{padding:15px;border:1px solid var(--line);background:#fbfdfb;border-radius:10px}
.role-card strong{display:flex;justify-content:space-between;gap:8px;font-size:calc(12px * var(--font-scale,1));font-weight:500}
.role-card strong span{font-size:calc(9px * var(--font-scale,1));color:#89a18f}
.role-card p{font-size:calc(10px * var(--font-scale,1));color:#a2aea5;line-height:1.9;margin-top:9px}
.material-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px;padding-bottom:21px}
.material-detail-grid>div>span:first-child{display:block;color:#96a79b;font-size:calc(10px * var(--font-scale,1));margin-bottom:5px}
.material-detail-grid strong{font-size:calc(13px * var(--font-scale,1));font-weight:500}
.material-purchase{margin:0 0 20px}
.material-name{background:none;padding:0;color:var(--ink);font-size:calc(11px * var(--font-scale,1));text-align:left;font-weight:500}
.material-name:hover{color:var(--green)}
@media(max-width:1020px){.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-intro{padding:38px}.login-card{padding:40px 35px}}
@media(max-width:760px){#login-screen{padding:20px}.login-layout{max-width:460px;grid-template-columns:1fr;min-height:auto}.login-intro{padding:27px 28px}.login-intro .brand{font-size:calc(22px * var(--font-scale,1))}.login-eyebrow{margin-top:22px;font-size:calc(8px * var(--font-scale,1))}.login-intro h1{font-size:calc(25px * var(--font-scale,1));line-height:1.5;margin-top:6px}.login-intro h1 br{display:none}.login-intro p,.login-decoration,.login-intro small{display:none}.login-card{padding:30px 28px 34px}.login-symbol{display:none}.login-card h2{font-size:calc(21px * var(--font-scale,1))}.login-card>p{margin-bottom:25px}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.root-label{display:block;margin:4px 0 0}.login-intro:after{width:260px;height:260px;bottom:-190px;right:-130px}}
@media(max-width:440px){.role-grid{grid-template-columns:1fr}.login-card{padding:28px 24px}.login-intro{padding:24px}.login-intro h1{font-size:calc(23px * var(--font-scale,1))}.material-detail-grid{gap:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
