body{margin:0;color:#172033;background:#f5f7fb}.screen-center,.login-page{display:grid;min-height:100vh;place-items:center;background:#f5f7fb}.login-card{width:min(420px,calc(100vw - 32px))}.login-title{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-title h3{margin:0 0 4px}.app-shell{min-height:100vh}.app-sider{background:#111827!important}.app-brand{display:flex;align-items:center;gap:10px;height:58px;padding:0 18px;color:#fff;font-weight:700}.app-brand-mark{display:grid;width:30px;height:30px;place-items:center;border-radius:7px;color:#fff;background:#1d6fd8;font-weight:700}.app-brand-logo,.app-header-logo{display:block;width:34px;height:34px;border-radius:8px;object-fit:cover}.app-header-logo{width:36px;height:36px}.mobile-menu-button{display:none;width:44px;height:44px;padding:4px}.app-header{display:flex;align-items:center;justify-content:space-between;height:58px;padding:0 24px;border-bottom:1px solid #dde3ee;background:#fff}.mobile-menu-drawer .ant-drawer-header,.mobile-menu-drawer .ant-drawer-body{background:#111827}.mobile-menu-drawer .ant-drawer-header{border-bottom-color:#ffffff14}.mobile-menu-drawer .ant-drawer-close{color:#d7dde8}.drawer-brand{height:auto;padding:0}.app-content{padding:22px 24px 34px;background:#f5f7fb}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.page-head h2{margin:0 0 6px}.module-permission-tags{margin-top:8px}.filter-card,.stats-row{margin-bottom:14px}.bom-product-filter .ant-card-body{display:flex}.bom-parent-select{width:min(760px,100%)}.bom-create-parent{margin-bottom:16px}.bom-child-modal{display:grid;gap:12px;min-width:0}.bom-child-modal-head{gap:12px;justify-content:space-between;width:100%}.bom-child-modal-shell .ant-modal{max-width:calc(100vw - 24px)}.bom-child-modal-shell .ant-modal-body{max-height:min(72vh,760px);overflow:auto;padding-right:18px}.goods-detail-modal .ant-modal{max-width:calc(100vw - 24px)}.goods-detail-modal .ant-modal-body{max-height:min(76vh,820px);overflow:auto;padding-right:18px}.goods-detail-file-path{max-width:min(520px,100%);color:#667085;overflow-wrap:anywhere}.bom-row-has-child>td{background:#f6fbff}.bom-child-entry-cell{text-align:center}.bom-child-symbol{color:#1d6fd8;border:1px solid #9ecbff;background:#fff}.bom-child-symbol:hover{border-color:#1d6fd8;background:#eef6ff}.bom-goods-cell{display:flex;min-width:0;align-items:center;gap:10px}.bom-goods-thumb-button{width:42px;height:42px;flex:0 0 auto;padding:0;border:0;background:transparent;cursor:zoom-in}.bom-goods-thumb{width:42px;height:42px;display:block;border:1px solid #dde3ee;border-radius:6px;background:#f5f7fb;object-fit:cover}.bom-goods-thumb-button:hover .bom-goods-thumb{border-color:#1d6fd8}.bom-goods-pdf-button{cursor:pointer}.bom-goods-pdf-thumb{background:#fff;object-fit:contain}.bom-goods-pdf-fallback{display:grid;width:42px;height:42px;place-items:center;border:1px solid #dde3ee;border-radius:6px;background:#fff7f7;color:#cf2f2f;font-size:11px;line-height:1}.bom-goods-pdf-button:hover .bom-goods-pdf-fallback{border-color:#cf2f2f}.bom-image-preview{display:block;max-width:100%;max-height:72vh;margin:0 auto;object-fit:contain}.bom-goods-file-link{flex:0 0 auto;padding-inline:4px}.bom-goods-link{min-width:0;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.bom-goods-link:disabled{cursor:default}.bom-goods-link:not(:disabled):hover .relation-id-name{color:#1d6fd8;text-decoration:underline}.table-card .ant-card-body{padding:0}.row-actions-compact{white-space:nowrap}.row-actions-compact .ant-btn{padding-inline:4px}.modal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.modal-form-grid .wide{grid-column:1 / -1}.relation-id-cell{display:grid;gap:2px;max-width:100%;cursor:help}.relation-id-name{display:-webkit-box;overflow:hidden;color:#172033;line-height:1.35;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.relation-id-code{color:#66728a;font-size:12px;line-height:1.2}@media(max-width:900px){.app-sider{display:none}.mobile-menu-button{display:inline-grid;place-items:center}.app-header{padding:0 12px}.app-content{padding:16px}.page-head{display:grid}.modal-form-grid{grid-template-columns:1fr}}
